The other day I came across an operator,
-<, appearing in the context of binding a value to a variable in a monad; specifically, it looks like this passes a value to a function which is then assigned (and possibly evaluated?) to a variable existing in the scope of a monad.
myMonad = do myVar <- f -< x
A few questions about this: first off, what's it called? The operator itself is un-googleable (Google doesn't like
>), and the one name I've found, "arrow application", usually links to the other kind of
Arrow present in Haskell, which seems unrelated.
Second, why is this operator not explained in most of the learning resources out there? Neither the "Gentle Introduction to Monads" nor LYAH give it so much as a passing mention, and most lists of Haskell operators forego it as well. (Is it considered bad practice?)
Finally, is this equivalent to using parentheses, as in,
(myVar <- f -< x) == (myVar <- (f x))? Or is it more like using
let myVar = (f x)? In either case, if this is how it's used, why use
-< over parens or