В Haskell, что это значит, если привязка «тени существующих связывание»?

StackOverflow https://stackoverflow.com/questions/2902716

  •  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 Параметр для чего-то, что не имеет столкновения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top