-- The above warning supression flag is a temporary kludge.
-- While working on this module you are encouraged to remove it and fix
-- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/CodingStyle#Warnings
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
-- for details
module TcHsType (
split (L _ (HsAppTy f a)) as = split f (a:as)
split f as = (f,as)
mk_app fun arg = HsAppTy (noLoc fun) arg -- Add noLocs for inner nodes of
- -- the application; they are never used
-
+ -- the application; they are
+ -- never used
+
+kc_hs_type ty@(HsPredTy (HsEqualP _ _))
+ = wrongEqualityErr
+
kc_hs_type (HsPredTy pred)
= kcHsPred pred `thenM` \ pred' ->
returnM (HsPredTy pred', liftedTypeKind)
= hang (ptext SLIT("The scoped type variables") <+> quotes (ppr n) <+> ptext SLIT("and") <+> quotes (ppr n'))
2 (vcat [ptext SLIT("are bound to the same type (variable)"),
ptext SLIT("Distinct scoped type variables must be distinct")])
+
+wrongEqualityErr
+ = failWithTc (text "Equality predicate used as a type")
\end{code}