diff options
Diffstat (limited to 'compiler/hsSyn/Convert.lhs')
-rw-r--r-- | compiler/hsSyn/Convert.lhs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/hsSyn/Convert.lhs b/compiler/hsSyn/Convert.lhs index a07fafe00d..f7d5bdb084 100644 --- a/compiler/hsSyn/Convert.lhs +++ b/compiler/hsSyn/Convert.lhs @@ -251,10 +251,13 @@ cvtDec (TySynInstD tc eqn) , tfid_fvs = placeHolderNames } } } cvtDec (ClosedTypeFamilyD tc tyvars mkind eqns) + | not $ null eqns = do { (_, tc', tvs') <- cvt_tycl_hdr [] tc tyvars ; mkind' <- cvtMaybeKind mkind ; eqns' <- mapM (cvtTySynEqn tc') eqns ; returnL $ TyClD (FamDecl (FamilyDecl (ClosedTypeFamily eqns') tc' tvs' mkind')) } + | otherwise + = failWith (ptext (sLit "Illegal empty closed type family")) ---------------- cvtTySynEqn :: Located RdrName -> TySynEqn -> CvtM (LTyFamInstEqn RdrName) cvtTySynEqn tc (TySynEqn lhs rhs) |