outStanza | (isMessage) = outMessage
| (isPresence) = outPresence
| (isIQ) = outIQ
Why such a style doesn't work, so I must write ugly code like that:
outStanza a | (isMessage a) = outMessage a
| (isPresence a) = outPresence a
| (isIQ a) = outIQ a
so, guards can't be useful in point-free function definitions in any way