我编译时会收到GHC的警告:
警告:'pats'的绑定会影响'match_ignore_ancs'定义中的现有绑定
这是功能:
match_ignore_ancs (TextPat _ c) (Text t) = c t
match_ignore_ancs (TextPat _ _) (Element _ _ _) = False
match_ignore_ancs (ElemPat _ _ _) (Text t) = False
match_ignore_ancs (ElemPat _ c pats) (Element t avs xs) =
c t avs && match_pats pats xs
知道这意味着什么以及如何解决它?
干杯。
答案 0 :(得分:9)
这意味着您在程序中的其他位置定义了符号pats
,或者从某个库模块导入了符号match_ignore_ancs
,并且它在与pats
相同的范围内可见,因此当您命名参数{{ 1}},它隐藏(即“阴影”)现有符号。
只需将pats
参数重命名为没有碰撞的内容。