Typo is a programming language that runs in Haskell's type system. All computation happens in Haskell's type system. A Typo program is compiled to a Haskell module that's then typechecked to compute the result.
Typo is a Scheme-like language. A program consists of zero or more function definitions and an expression, which is required. The result of a Typo program is the result of the final expression when evaluated in the context of the preceding definitions and the built-in integer and boolean operators.
(define (fac n) (if (== n 0) 1 (* n (fac (- n 1))))) (fac 5)