Я пытаюсь сосредоточиться на классах и структурах данных в Haskell, в частности, объявляя его экземпляр типа. Я могу заставить его работать с некоторыми классами и типами данных, но не со всеми, поэтому я должен что-то упустить. В частности, у меня есть следующая декларация данных:
data LinkedList a = End | Link a (LinkedList a)
Я хочу объявить экземпляр Show для этого типа, чтобы результат выглядел примерно как «el1, el2, el3, el4, ...»
instance Show LinkedList where
show (End) = "."
show (Link a b) = show a ++ "," ++ show b
Как и ожидалось, это не работает ... Есть идеи, почему? Я думаю, что понимаю, что означают «данные» и «тип», но я не уверен, насколько мне удобно с классами и примерами. Спасибо