GHC rewrite rule type-checking failure