内フォークする方法、J
でいくつかのモナド変圧器スタックを検討モナド変換
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
...
newtype J = J { runJ :: ErrorT Foo (StateT Bar IO) a } deriving (Applicative, Functor, etc)
そして、いくつかの機能を言う:
peekNextQuux :: J Quux
peekNextQuux = ...
withJ :: J a -> IO (Either Foo a)
withJ = ...
その後、私はJ
コンテキスト内で自分自身を発見しました。私は今、私はJ
コンテキスト明らかに動作しません
g = withJ . liftIO . forkIO . forever $ peekNextQuux >>= liftIO . print
内部の別のスレッド内でのぞくと、印刷quuxesたい
f = withJ $ peekNextQuux >>= liftIO . print
を書くことができます。私は、このような単純な問題を解決する方法がいくつかありますが、それを理解することはできません。
ありがとうございました。 –