purely functional, functional
dependent system, non-structural typing, strong typing, full inference
Haskell, Coq, Epigram
agda