我试图回答这个问题: “鉴于代数数据类型类型的类实例重新定义
data Maybe a = Nothing | Just a
选择正确的实例声明表明这些类型构造
Maybe
是Monad
。” (取自这里:“DelftX:FP101x介绍函数编程”我想ANWER它是由编译依次在每个potencial答案,例如方式,这一个:
instance Monad Maybe where return x = Just x Nothing >>= _ = Nothing (Just x) >>= f = f x
,因为它是在前奏中已经定义我不能编译
HwEx9.hs:16:10: error: Duplicate instance declarations: instance Monad Maybe -- Defined at HwEx9.hs:16:10 instance Monad Maybe -- Defined in `GHC.Base'
我的问题是:?我如何编译
最简单的方法:定义你自己的'Maybe'样型。 – melpomene
没有办法避免为给定类型导入类型类实例。 (另见https://stackoverflow.com/a/8731340/6476589) –
将其更改为MyMaybe? – immibis