> union :: (a -> a -> COrdering a) -> Set a -> Set a -> Set a
What we "really" want here is being able to write code like this:
let instance Ord A where { ... }
in union (x :: Set A) (y :: Set A)
It certainly needs some thinking to make this into
a consistent proposal for a language extension ...
Best regards, J.