I'm not sure if they will meet your standards, but Idris and ATS strive to be practical dependently typed languages:
http://www.ats-lang.org/Examples.html http://www.idris-lang.org/
239 karma · joined January 16, 2014
http://www.ats-lang.org/Examples.html http://www.idris-lang.org/
If all you want is syntactic sugar, Elm has infix lift operators so:
let p = lift2 (+) Mouse.x Mouse.y
becomes: let p = (+) <~ Mouse.x ~ Mouse.y
If you don't like that, Haskell has `do` notation. If Elm also had it, you could do: let p = do
x <- Mouse.x
y <- Mouse.y
return (x + y)Dependently typed languages can provide this.
https://blogs.janestreet.com/breaking-down-frp/ http://people.seas.harvard.edu/~chong/abstracts/CzaplickiC13... http://www.testblogpleaseignore.com/wp-content/uploads/2012/...
filter p (x :: xs) with (filter p xs)
| (_ ** xs') = if p x then (_ ** x :: xs') else (_ ** xs')
rather than filter p (x :: xs) = if p x then (_ ** x :: snd (filter p xs)) else (_ ** snd (filter p xs))
?