如标题所示,我正在寻找一个程序,该程序将monad-transformers与大量Monads结合使用。
有人知道真实的例子吗?
最佳答案
一个很好的例子是Haskeline-其内部InputCmdT
类型是深度为6的monad转换器堆栈(请参阅here):
type InputCmdT m = StateT Layout (UndoT (StateT HistLog (ReaderT (IORef KillRing)
(ReaderT Prefs (ReaderT (Settings m) m)))))
实际上可能会产生奇怪的影响,例如在System.Console.Haskeline.Emacs中吹至少一种GHC版本的多达20.000行的一种类型签名...