做记号 | 奉献精神 我刚刚锁上了一扇敞开的门。奇怪,但具有象征意义。 曼妮·卡拉维拉(Ganny Fandango) 概述 您是否曾经想过使用索引式monad管理复杂的不变量而又不放弃常规的monad? do-notation可以使您在幕后摆放一堆类型的jiggery-pokery。 它还提供了Ix m索引的monad,它是常规monad m的免费构造。凉爽的。 用法 {-# LANGUAGE RebindableSyntax #-} import Language.Haskell.DoNotation import Prelude hiding ( Monad ( .. ), pure ) 局限性 该实现与通过let绑定的do blocks不能很好地配合使用。 谢谢 向我大声喊叫,非常耐心地我完成了使所有这些工作都必需的不连贯的实例机制。