import TcType
import TcGadt
import qualified Type
-import Id
import Var
import VarSet
import VarEnv
name, like otber top-level names, and hence must be made with newGlobalBinder.
\begin{code}
-newDFunName :: Class -> [Type] -> SrcLoc -> TcM Name
+newDFunName :: Class -> [Type] -> SrcSpan -> TcM Name
newDFunName clas (ty:_) loc
= do { index <- nextDFunIndex
; is_boot <- tcIsHsBoot
newDFunName clas [] loc = pprPanic "newDFunName" (ppr clas <+> ppr loc)
\end{code}
-Make a name for the representation tycon of a data/newtype instance. It's an
+Make a name for the representation tycon of a family instance. It's an
*external* name, like otber top-level names, and hence must be made with
newGlobalBinder.
\begin{code}
-newFamInstTyConName :: Name -> SrcLoc -> TcM Name
+newFamInstTyConName :: Name -> SrcSpan -> TcM Name
newFamInstTyConName tc_name loc
= do { index <- nextDFunIndex
; mod <- getModule
ptext SLIT("used as a") <+> text expected)
famInstNotFound tycon tys what
- = failWithTc (msg <+> quotes (ppr tycon <+> hsep (map pprParendType tys)))
+ = failWithTc (msg <+> quotes (pprTypeApp (ppr tycon) tys))
where
msg = ptext $ if length what > 1
then SLIT("More than one family instance for")