-type FromAlt = (Pat RdrName, HsExpr RdrName)
-
-mkGenericBinds :: [TyCon] -> MonoBinds RdrName
-mkGenericBinds tcs = andMonoBindList [ mkTyConGenBinds tc
- | tc <- tcs, tyConHasGenerics tc]
-
-mkTyConGenBinds :: TyCon -> MonoBinds RdrName
-mkTyConGenBinds tycon
- = FunMonoBind to_RDR False {- Not infix -}
- [mkSimpleHsAlt pat rhs | (pat,rhs) <- from_alts]
- loc
- `AndMonoBinds`
- FunMonoBind from_RDR False
- [mkSimpleHsAlt (VarPat to_arg) to_body] loc
+type FromAlt = (LPat RdrName, LHsExpr RdrName)
+
+mkTyConGenericBinds :: TyCon -> LHsBinds RdrName
+mkTyConGenericBinds tycon
+ = unitBag (L loc (FunBind (L loc from_RDR) False {- Not infix -}
+ [mkSimpleHsAlt pat rhs | (pat,rhs) <- from_alts]))
+
+ `unionBags`
+ unitBag (L loc (FunBind (L loc to_RDR) False
+ [mkSimpleHsAlt to_pat to_body]))