"GHC makes no attempt to verify that the rule is consistent with the underlying function definitions, apart from ensuring that the left and right hand sides of the rule have the same type. The whole point is that the rule asserts something that GHC is not smart enough to work out for itself! "