Inch is a type-checker for a subset of Haskell (plus some GHC
extensions) with the addition of integer constraints. After
successfully type-checking a source file, it outputs an
operationally equivalent version with the type-level integers
erased, so it can be used as a preprocessor in order to compile
programs.