相关疑难解决方法(0)

如果类实例是一个循环,GHC可以发出警告吗?

真实世界Haskell有这个例子:

class BasicEq3 a where
    isEqual3 :: a -> a -> Bool
    isEqual3 x y = not (isNotEqual3 x y)

    isNotEqual3 :: a -> a -> Bool
    isNotEqual3 x y = not (isEqual3 x y) 

instance BasicEq3 Bool
Run Code Online (Sandbox Code Playgroud)

当我在GHCI中运行时:

#> isEqual3 False False
out of memory
Run Code Online (Sandbox Code Playgroud)

因此,您必须实现两种方法中的至少一种,否则它将循环.而且你可以灵活地选择哪一个很整洁.

我的问题是,有没有办法得到一个警告或什么,如果没有覆盖足够的默认值和默认值形成一个循环?我觉得奇怪的是,这个例子对于那么疯狂的编译器来说很好.

haskell

12
推荐指数
3
解决办法
335
查看次数

标签 统计

haskell ×1