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 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 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 from question What language to learn after Haskell? |