Hm, I've been thinking about this this morning as I've gone about my commute. I could indeed imagine a class like the following that had multiple implementations like you're talking about:
One can indeed --- but it turns out to be even more general than just trees. Go look at the Foldable and Traversable classes.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com