There's a Glasgow extension that gets you to this:
treeFold :: (a -> a -> a) -> Tree a -> a
treeFold f = \case
Leaf {} -> id
Node {} -> f `on` treeFold f
Or maybe this if parens are needed:
treeFold :: (a -> a -> a) -> Tree a -> a
treeFold f = \case
(Leaf {}) -> id
(Node {}) -> f `on` treeFold f
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe
