Single-module Lambda Calculus repo walks from Simply Typed to Martin‑Löf — one readable step at a time

April 14, 2026
Teen boy in hoodie writes math formulas on a chalkboard, focused on solving algebra equations.
Photo by www.kaboompics.com on Pexels

Repository snapshot

A new GitHub repository collects a sequence of Lambda Calculus implementations, all written in Haskell, that guide the reader from a simply‑typed evaluator up through full Martin‑Löf Type Theory. The examples are organized as sequentially building modules, but each file is a standalone program you can read and run independently. Parsing is deliberately skipped for brevity; the repository includes concrete‑to‑human pretty printers so the examples stay readable instead of turning into a wall of parser code.

What’s inside

The series covers core PLT territory: simply typed evaluation, bidirectional typechecking, normalization by evaluation, and elaboration, then moves into richer features — typed holes, System T, records and subtyping, System F, Pi/Sigma types, type universes (and universe polymorphism), indexed and inductive types, equality, row polymorphism, and even linear types. It’s like a compact course in modern type systems, module by module. Want to compile to a target? The repo notes plans to show STLC, System F, and MLTT compiling to JavaScript, a simple stack machine, and LLVM; it has been reported that those targets are slated for future examples.

Why it matters

This matters because good examples are rare. Many tutorials either handwave implementation detail or bury you in a single monolithic project. Here the author aims for best practices and clarity: small, focused modules you can grep, tweak, and learn from. The emotional payoff is real — that first moment when a complex elaboration or a normalization routine actually typechecks feels like unlocking a secret level. Who doesn’t love that?

Next steps and the big picture

It has been reported that the ultimate goal is a 1lab‑style literate coded webapp to explore lambda calculus interactively — think Observable notebooks but for type theory. If realized, the repo could become a compact, runnable playground for students and language designers alike. For now, it’s a tidy, opinionated toolbox for anyone who wants to see how the pieces of modern type systems fit together — in a single directory, no mystery required.

Sources: github.com/solomon-b, Lobsters