gpt4 book ai didi

haskell - MTL 库需要哪些语言扩展?

转载 作者:行者123 更新时间:2023-12-04 06:41:11 29 4
gpt4 key购买 nike

我试图通过基于现有设计实现我自己的小型库来理解 monad 转换器。

我坚持的是语言扩展。在 MonadError ,唯一提到的扩展名是 UndecidableInstances .但是,如果不使用 FunctionalDependencies,我将无法编译类似的代码。和 FlexibleInstances .

我认为需要 FunDeps 的示例:

class (Monad m) => MonadError e m | m -> e where

还有一个灵活的实例:
instance MonadError e m => MonadError e (MaybeT m) where
MonadError 如何代码避免额外的两个扩展?

最佳答案

您不必拼出源文件本身中的所有扩展名。所有/大多数模块使用的通用扩展都可以在项目的 cabal 文件中列出。在 mtl's case :

extensions:
MultiParamTypeClasses
FunctionalDependencies
FlexibleInstances

关于haskell - MTL 库需要哪些语言扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155709/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com