X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FcoreSyn%2FMkExternalCore.lhs;h=246bfa05c74768b963286fc7166798b27c82b985;hb=bf40e268d916947786c56ec38db86190854a2d2c;hp=c8885f7f1cc41e5f41bd56bf5aad2f5d14e8ebd0;hpb=e6e4036c03b21295e6457d0443106cf4e2830f4a;p=ghc-hetmet.git diff --git a/compiler/coreSyn/MkExternalCore.lhs b/compiler/coreSyn/MkExternalCore.lhs index c8885f7..246bfa0 100644 --- a/compiler/coreSyn/MkExternalCore.lhs +++ b/compiler/coreSyn/MkExternalCore.lhs @@ -69,7 +69,7 @@ collect_tdefs tcon tdefs -- | null (tyConDataCons tcon) = error "MkExternalCore died: can't handle datatype declarations with no data constructors" | otherwise = C.Data (make_con_qid (tyConName tcon)) (map make_tbind tyvars) (map make_cdef (tyConDataCons tcon)) - where repclause | isRecursiveTyCon tcon = Nothing + where repclause | isRecursiveTyCon tcon || isOpenTyCon tcon= Nothing | otherwise = Just (make_ty rep) where (_, rep) = newTyConRep tcon tyvars = tyConTyVars tcon @@ -175,11 +175,11 @@ make_ty (NoteTy _ t) = make_ty t make_kind :: Kind -> C.Kind +make_kind (PredTy p) | isEqPred p = panic "coercion kinds in external core not implemented!" make_kind (FunTy k1 k2) = C.Karrow (make_kind k1) (make_kind k2) make_kind k | isLiftedTypeKind k = C.Klifted | isUnliftedTypeKind k = C.Kunlifted --- | isUnboxedTypeKind k = C.Kunboxed Fix me | isOpenTypeKind k = C.Kopen make_kind _ = error "MkExternalCore died: make_kind"