X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fparser%2FRdrHsSyn.lhs;h=746f3d623b95cde27b346db569f2075aaba9804c;hp=d18b8d8fd91ce989236c092efce6030664e2ad40;hb=bbeb08a18156abf1f719ab7273a134f5f21e7fa6;hpb=a5b8f5c544e977a230da67456455aca9cd576637 diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs index d18b8d8..746f3d6 100644 --- a/compiler/parser/RdrHsSyn.lhs +++ b/compiler/parser/RdrHsSyn.lhs @@ -549,12 +549,14 @@ checkInstType (L l t) checkDictTy :: LHsType RdrName -> P (LHsType RdrName) checkDictTy (L spn ty) = check ty [] where - check (HsTyVar t) args | not (isRdrTyVar t) - = return (L spn (HsPredTy (HsClassP t args))) + check (HsTyVar tc) args | isRdrTc tc = done tc args + check (HsOpTy t1 (L _ tc) t2) args | isRdrTc tc = done tc (t1:t2:args) check (HsAppTy l r) args = check (unLoc l) (r:args) check (HsParTy t) args = check (unLoc t) args check _ _ = parseError spn "Malformed instance header" + done tc args = return (L spn (HsPredTy (HsClassP tc args))) + checkTParams :: Bool -- Type/data family -> [LHsType RdrName] -> P ([LHsTyVarBndr RdrName], Maybe [LHsType RdrName])