Существует несколько проблем с вашим кодом:
- Имена конструкторов должны начинаться с заглавной буквы.
data Lst a = LstNode (Maybe a)
Ваш список может содержать только одно значение
lstDelete
не имеет никакого смысла.Он принимает [Char]
в качестве ключа и Lst a
в качестве списка.Нет способа сравнить их (нет нетривиальной функции, которая может принимать эти параметры).Вам следует либо изменить тип на
lstDelete :: [Char] -> Lst [Char] -> Lst [Char]
, либо написать более общий
lstDelete :: Eq a => a -> Lst a -> Lst a
Map.fromList
принимает
[(k, v)]
, вы не можете передать ему
Lst a
.
lstIsEmpty
не определено.