-tidyNPat :: HsOverLit Id -> Maybe (SyntaxExpr Id) -> SyntaxExpr Id
- -> Type -> Pat Id
-tidyNPat over_lit mb_neg eq lit_ty
- | isIntTy lit_ty = mk_con_pat intDataCon (HsIntPrim int_val)
- | isFloatTy lit_ty = mk_con_pat floatDataCon (HsFloatPrim rat_val)
- | isDoubleTy lit_ty = mk_con_pat doubleDataCon (HsDoublePrim rat_val)
- | otherwise = NPat over_lit mb_neg eq lit_ty
+tidyNPat :: HsOverLit Id -> Maybe (SyntaxExpr Id) -> SyntaxExpr Id -> Pat Id
+tidyNPat (OverLit val False _ ty) mb_neg _
+ -- Take short cuts only if the literal is not using rebindable syntax
+ | isIntTy ty = mk_con_pat intDataCon (HsIntPrim int_val)
+ | isWordTy ty = mk_con_pat wordDataCon (HsWordPrim int_val)
+ | isFloatTy ty = mk_con_pat floatDataCon (HsFloatPrim rat_val)
+ | isDoubleTy ty = mk_con_pat doubleDataCon (HsDoublePrim rat_val)
+-- | isStringTy lit_ty = mk_con_pat stringDataCon (HsStringPrim str_val)