Agda
Agda is a dependently typed, total functional programming language and a proof assistant.
Haskell
Haskell is a functional programming language featuring strong static typing, lazy evaluation, extensive parallelism and concurrency support, and unique abstraction capabilities.
Others
Example |
---|
Haskell unlike agda does not have dependent types so there is no way to do exactly what you want;types cannot be parameterized by value since haskell enforces a phase distinction between runtime and compile time from question Binding name in type signature using DataKind |
Now i believe this approach is a fair bit more practical than indexing with monoids because haskell doesn t have kind classes or first-class type level functions that would make the monoid approach palatable;it would be nice to have a verifiedmonoid class like in idris or agda which includes correctness proofs besides the usual methods from question Working out the details of a type indexed free monad |
Coq is probably the most prominent language of the style but agda has a more haskell-y feel as well as being written in haskell itself from question What language to learn after Haskell? |