注意:可能有一些拼写错误(大写字母等),因为我的无线网卡在我的电脑上坏了,我无法在这个上安装 haskell,所以我重新输入代码(而且我没有记忆棒 xD)
我一直在使用
Config line values 2 2
定义一个配置,但我只是不喜欢这个函数'开始'。任何需要 f -> f 的东西都可以正常工作......
data Config = Config {
line :: Line,
nums :: [Nums],
indent :: Indent,
run :: Run
} deriving (Eq, Show)
class (Result f) => Test f where
start :: Line -> [Nums] -> f
instance Test Config where
start line nums = Config line nums 0 0
如果我跑
> start 2 [0,0,0]
应该返回
> Config 2 [0,0,0] 0 0
我得到错误:
Ambiguous type variable `f0' in the constraint:
(Test f0) arising from a use of `start'
Probable fix: add a type signature that fixes these type variable(s)
跑步
> :t Config 2 [0,0,0] 0 0
给
> Config 2 [0,0,0] 0 0 :: Config
哪个是对的