System.IO的官方来源在哪里?
我看了here,但它不存在。
点击source时,它表示不在此处。我很困惑,因为this页面上的其他链接似乎有效。
编辑:
我发现了这个:
instance Monad IO where
{-# INLINE return #-}
{-# INLINE (>>) #-}
{-# INLINE (>>=) #-}
m >> k = m >>= \ _ -> k
return = returnIO
(>>=) = bindIO
fail s = failIO s
bindIO :: IO a -> (a -> IO b) -> IO b
bindIO (IO m) k = IO $ \ s -> case m s of (# new_s, a #) -> unIO (k a) new_s
答案 0 :(得分:7)
如果您想知道哪个接口System.IO
应该公开,请检查Haskell报告。我相信这是规范性的规范。
如果你想要内部实现......好吧,它很难连接到编译器。您必须阅读GHC源代码。
修改: IO
很特别。 IO
是神奇的。看它的来源不会告诉你任何有趣的东西。它只是一堆代码,它们操纵编译器内部的低级I / O工作方式。无论你想要了解什么,你可能都不会在这里找到启示。