Как мне написать обобщенную функцию свёртки для общих деревьев Haskell?
data (Eq a, Show a) => Tree a = Void | Node a [Tree a]
deriving (Eq, Show)
treefold :: (Eq a, Show a) => (a -> [b] -> b) -> b -> Tree a -> b
Я застрял в определении первого аргумента ...
EDIT : как насчет более обобщенной версии, избегая использования списков? Подробнее здесь