Заголовок указывает на то, что вы получили предупреждение о неполном совпадении с шаблоном. Рассмотрим это:
58567334.hs:6:1: warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In an equation for `decode': Patterns not matched: (Leaf _) (_:_:_)
|
6 | decode _ [] = ([],True)
| ^^^^^^^^^^^^^^^^^^^^^^^^...
Это говорит о том, что шаблон, включающий любой Leaf
со списком логических значений длиннее двух, не охватывается.
Первый шаблон, который соответствует []
соответствует пустому списку.
Следующий шаблон, соответствующий [bs]
, соответствует списку с единственным элементом с именем bs
. Это распространенная ошибка.
Возможно, вам вместо этого нужен этот шаблон:
decode (Leaf v) bs = -- ...
, где bs
- это значение [Bool]
(т. Е. Список логических значений).
Теперь вам нужно выяснить, как объединить этот список логических значений в один Bool
.