Implementing dependent types: how hard could it be? (Part 2)

Posted on July 31, 2025 Short answer: hard, but not as hard as I thought. This is part 2 of a series of posts on the implementation of a dependently-typed lambda-calculus. In part 1, we discussed the need for normalization of terms, and used a powerful, extensible approach called Normalization by Evaluation to implement a normalization procedure. In this post, we’ll implement the typechecking…