4 Mar 2008 04:38
coreFunc has extra argument
Tom Hawkins <tomahawkins <at> gmail.com>
2008-03-04 03:38:51 GMT
2008-03-04 03:38:51 GMT
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:
(Continue reading)
RSS Feed