Я работаю над домашним заданием и мне нужна помощь. Задача: На первом шаге мне нужно определить новый класс типов для перегруженной функции "genDrop".Он должен вести себя как «drop» (для Int), но не ограничиваться Int.На втором шаге он должен быть создан для типов Int, Nat, PosNat и Int '.
Так вот мой код:
class GenDrop a where
genDrop :: a -> [a] -> [a]
instance GenDrop Int where
genDrop 0 s = s
genDrop n (_:s) | n>0 = genDrop (n-1) s
genDrop _ [] = []
instance GenDrop Nat where
genDrop Zero s = s
genDrop (Succ n) (_:s) = genDrop n s
genDrop _ [] = []
instance GenDrop PosNat where
genDrop One (_:s)= s
genDrop (Succ' n) (_:s) = genDrop n s
genDrop _ [] = []
instance GenDrop Int' where
genDrop Zero' s = s
genDrop (Plus n) (_:s) = genDrop n s
genDrop (Minus n) s = s
genDrop _ [] = []
Но при компиляции я получаю ошибку:
ошибка разбора на входе 'instance'
instance GenDrop Int, где
Я не могу понять, что не так.