No instance for (Eq (MyBool a0 -> a0 -> a0 -> a0))
arising from a use of ‘==’
Undecidability of function equality aside, we could indeed define "myIf = id" instead.
Fair point, though if I remeber correctly there is only one function with type a->a and so we get equality automatically.
(This may be untrue in the presence of the likes of unsafeCoerce.)