How can I write a generalized foldr function for generic Haskell trees?
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
I'm stuck at the first argument definition...
EDIT: what about a more generalized version, avoiding using lists? More here