Hi,
Printing the core one of my programs I see:
data Prelude;1() a =
Preluse;1() a
What is this? A single element tuple? I didn't think Haskell had
these. My program has a monad similar to IO. It appears these
Prelude;1() things are created in the lambda lifted version of f1.
Perhaps is it the parenthesis around (System m)?
data Return a = Return a World
data System a = System (World -> Return a)
data World = World
instance Monad System where
(System m) >>= k = System f1
where
f1 w = f2 w'
where
Return r w' = m w
System f2 = k r
return a = System (\ w -> Return a w)
It's a bit difficult to correlate arguments of lifted lambdas to the
original source. Is there a convention YHC uses for adding the extra
arguments to lifted lambdas?
Thanks!
-Tom
_______________________________________________
Yhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/yhc