Idris 1.0
For anyone wondering what Idris is, it's pretty much Haskell with dependent types. That is, it's easy to encode thing like "vector of length n" in the type system, so you can go from 
    concat :: Vec -> Vec -> Vec 
to 
    concat : Vec n -> Vec m -> Vec (n+m).