Jules Bean wrote:
do
  a <- m
  b <- n
  l a x b y

becomes

l (<- m) x (<- n) y

...with, I suppose, left-to-right evaluation order. This looks 'almost like substitution' which is the goal.

Almost?

So then (flip f) (<- m) (<- n) does *not* equal f (<- n) (<- m) ?

There goes any hope of my understanding future Haskell code. (<- n) sure looks like an operator section to me, and more importantly a first class Haskell object. What human parsing this would not see a mere function application?

And I guess this makes the following complete nonsense:

do
  let a = (<- m)
  let b = (<- n)
  l a x b y

What about

do
  let (b,a) = ((<- n),(<- m))

  -- many lines of code

  l a x b y

Who can say that b was evaluated before a?

I hope the language syntax does not evolve beyond my merely mortal ability to desugar it?

Dan Weston

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to