}
kc_pred pred@(HsEqualP ty1 ty2)
= do { (ty1', kind1) <- kcHsType ty1
- ; checkExpectedKind ty1 kind1 liftedTypeKind
+-- ; checkExpectedKind ty1 kind1 liftedTypeKind
; (ty2', kind2) <- kcHsType ty2
- ; checkExpectedKind ty2 kind2 liftedTypeKind
- ; returnM (HsEqualP ty1 ty2, liftedTypeKind)
+-- ; checkExpectedKind ty2 kind2 liftedTypeKind
+ ; checkExpectedKind ty2 kind2 kind1
+ ; returnM (HsEqualP ty1' ty2', liftedTypeKind)
}
---------------------------
= do { checkTc (isLiftedTypeKind res_kind) (badKindSig kind)
; span <- getSrcSpanM
; us <- newUniqueSupply
- ; let loc = srcSpanStart span
- uniqs = uniqsFromSupply us
- ; return [ mk_tv loc uniq str kind
+ ; let uniqs = uniqsFromSupply us
+ ; return [ mk_tv span uniq str kind
| ((kind, str), uniq) <- arg_kinds `zip` names `zip` uniqs ] }
where
(arg_kinds, res_kind) = splitKindFunTys kind