2014-06-01から1ヶ月間の記事一覧

モナド変換子の圏論的理解(Categorical understanding of monad transformers)

モナド変換子 Haskellにおいてモナド変換子(Monad transformer)は、以下の条件を満たすtです: tのkindは(* -> *) -> * -> * lift :: Monad m => m a -> t m aが定義されている liftが以下の法則を満たす: lift . return = return ∀m k. lift (m >>= k) = lif…

Haskellでのエラー処理について(ErrorT, ExceptT)

Haskellでインタプリタ( https://github.com/koba-e964/experiment/tree/master/typeinf )を書いていて、エラー処理をしたくなったのでモナド変換子ErrorTを導入しました。その後別の環境でコンパイルしてみたら (前略) Use Control.Monad.Except instead (…