[Yhc] coreFunc has extra argument
Tom Hawkins
tomahawkins at gmail.com
Mon Mar 3 22:38:51 EST 2008
I noticed a coreFunc has an extra argument and I'm not sure where it's
coming from. For example if I compile:
main :: IO ()
main = return ()
and print out the coreFuncs and coreDatas I get:
Main;main = Prelude;YHC.Internal.IO;Prelude.Monad;return Prelude;()
Prelude;1807_ioReturn v25601 v25602 = YHC.Primitive;_E v25601
Prelude;YHC.Internal.IO;Prelude.Monad;return v25600 =
Prelude;1807_ioReturn v25600
main = Main;main
data YHC.Primitive;_E b =
YHC.Primitive;_E b
data Prelude;() =
Prelude;()
Why does Prelude;1807_ioReturn include an extra argument (v25602) that
is not used? If I informally type check this by hand, I get a
contradiction:
main :: IO ()
Main;main :: IO ()
Prelude;YHC.Internal.IO;Prelude.Monad;return :: a -> IO a
Prelude;YHC.Internal.IO;Prelude.Monad;return = Prelude;1807_ioReturn
Therefore if follows:
Prelude;1807_ioReturn :: a -> IO a
But the Prelude;1807_ioReturn definition has type:
Prelude;1807_ioReturn :: a -> b -> YHC.Primitive;_E a
What am I missing here? Am I to interpret this as meaning:
b -> YHC.Primitive;_E a == IO a ?
Thanks for any help!
-Tom
More information about the Yhc
mailing list