为什么MonadReader不需要MultiParamTypeClasses和FunctionalDependencies pragma?

时间:2014-04-28 08:34:34

标签: haskell

MonadReader定义为:

class Monad m => MonadReader r m | m -> r where {...}
mtl-2.1.3.1中的

,但唯一使用的扩展名为UndecidableInstances。如果我在本地定义,GHC会建议我启用MultiParamTypeClassesFunctionalDependencies。 但是为什么我没有在mtl源中看到这两个启用?

1 个答案:

答案 0 :(得分:1)

它们列在mtl.cabal文件的extensions部分中。 最新版本的cabal建议将此部分分为两部分:

  • default-extensions将应用于当前目标
  • 中的所有文件
  • other-extensions默认情况下将,但程序员应在每个文件中明确启用它们(使用pragma)。