在unsafeDupablePerformIO(来源,文档)的定义中,我找到了对唯一的引用realWorld#.所以我想知道所有这些以a结尾的函数或值是在哪里#定义的?我已经找到了GHC primops课程:它们包括seq#,catch#,retry#,和所有其他类型的有趣功能.它还包含一种RealWorld类型.但是这些初学者似乎并没有包含实际价值realWorld#.
{-# NOINLINE unsafeDupablePerformIO #-}
-- See Note [unsafeDupablePerformIO is NOINLINE]
unsafeDupablePerformIO :: IO a -> a
unsafeDupablePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r)
-- See Note [unsafeDupablePerformIO has a lazy RHS]
Run Code Online (Sandbox Code Playgroud)
(请不要混合RealWorld和realWorld#:第一个是类型,第二个是值.)
GHC还有其他未记载的初学者吗?或者也许所有这些都记录在某处,我还没有找到它?我可以在GHC源中查看这些内容的实现情况吗?