如何查询默认方法的类型?



GHC扩展DefaultSignatures允许更改默认方法的类型:

class Enum a where
enum :: [a]
default enum :: (Generic a, GEnum (Rep a)) => [a]
enum = map to genum

是否可以向编译器询问默认方法的类型?这样做的语法是什么?:t enum是不够的(因为它显然报告enum :: Enum a => [a](。

:info Enum会这样做。

对于您的示例,这将生成输出

class Enum a where
enum :: [a]
default enum :: (Generic a, GEnum (Rep a)) => [a]
-- Defined at ...

最新更新