Hacker News new | ask | show | jobs
by AlexanderDhoore 4233 days ago
But why not make the "lifting" implicit? If you put a signal into "distance", you get a signal back.
3 comments

That sort of unprincipled, implicit conversion is generally frowned upon (by Elm, Haskell, ML, &c.). It reduces type safety.

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)
There was a discussion about this on the Elm mailing list: https://groups.google.com/d/topic/elm-discuss/PNtOH2CDHZo/di...
Maybe it's just me, but that sounds very confusing.