В Haskell, что это значит, если привязка «тени существующих связывание»?
-
04-10-2019 - |
Вопрос
Я получаю предупреждение от 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
Любая идея, что это значит и как я могу это исправить?
Ваше здоровье.
Решение
Это означает, что у вас есть символ pats
определяется где-то еще в вашей программе или импортированной из какого-либо библиотечного модуля, и он виден в той же области, что и match_ignore_ancs
, Так, когда вы называете параметр pats
, он прячется (то есть «тени»), что существующий символ.
Просто переименуйте pats
Параметр для чего-то, что не имеет столкновения.
Не связан с StackOverflow