; mapM_ checkTyFamFreeness typats
-- the right-hand side is a tau type
- ; checkTc (isTauTy rhs) $
- polyTyErr rhs
+ ; checkValidMonoType rhs
-- we have a decidable instance unless otherwise permitted
; undecidable_ok <- doptM Opt_UndecidableInstances
colon) 4 $
ppr ty
-polyTyErr :: Type -> SDoc
-polyTyErr ty
- = hang (ptext (sLit "Illegal polymorphic type in type instance") <> colon) 4 $
- ppr ty
-
famInstUndecErr :: Type -> SDoc -> SDoc
famInstUndecErr ty msg
= sep [msg,
; t_typats <- mapM tcHsKindedType k_typats
; t_rhs <- tcHsKindedType k_rhs
- -- (3) check that
- -- - check the well-formedness of the instance
+ -- (3) check the well-formedness of the instance
; checkValidTypeInst t_typats t_rhs
-- (4) construct representation tycon