[snip]
>I don't think there is a way to /prove/ f (g a) == g (f a) if their
>domain is not finite inside Haskell (you could do it with pen and paper).
[snip]
Just out of interest, could you demonstrate the proof
without a finite domain?
Sincerely, Matthew