Given your correction, I think that the type declaration

  data FooTree a b  =  Leaf b | Node a (FooTree a b) a (FooTree a b)

will handle things only a little less neatly than the use of
wrappers, and will allow you to use type inference in much the
way you wish.  What do you think?  Cheers,  -- P


Reply via email to