
Wouter Swierstra wrote:
On 11 Jul 2007, at 08:38, Simon Peyton-Jones wrote:
Another alternative (which I got from Greg Morrisett) that I'm toying with is this. It's tiresome to write
do { x <- <stuff1> ; y <- <sutff2> ; f x y }
In ML I'd write simply
f <stuff1> <stuff2>
Using Control.Applicative you could already write:
f <$> x <*> y
No, since f is not a pure function, it's f :: x -> y -> m c. The correct form would be join $ f <$> x <*> y (Why doesn't haddock document infix precedences?) But maybe some type-class hackery can be used to eliminate the join. In any case, I'm *strongly against* further syntactic sugar for monads, including #1518. The more tiresome monads are, the more incentive you have to avoid them. Regards, apfelmus