X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fiface%2FBuildTyCl.lhs;h=9f35453b590cc0e33e561b3e1ec6e8eadc0fe250;hb=00b6d2567426ec52a113b1d3687e1d61368cafda;hp=707de1cbf73f1be46606d1c0cfacdc59cb135779;hpb=b1ab4b8a607addc4d097588db5761313c996a41f;p=ghc-hetmet.git diff --git a/compiler/iface/BuildTyCl.lhs b/compiler/iface/BuildTyCl.lhs index 707de1c..9f35453 100644 --- a/compiler/iface/BuildTyCl.lhs +++ b/compiler/iface/BuildTyCl.lhs @@ -7,7 +7,7 @@ module BuildTyCl ( buildSynTyCon, buildAlgTyCon, buildDataCon, buildClass, - mkAbstractTyConRhs, mkOpenDataTyConRhs, mkOpenNewTyConRhs, + mkAbstractTyConRhs, mkOpenDataTyConRhs, mkNewTyConRhs, mkDataTyConRhs ) where @@ -115,10 +115,7 @@ mkAbstractTyConRhs :: AlgTyConRhs mkAbstractTyConRhs = AbstractTyCon mkOpenDataTyConRhs :: AlgTyConRhs -mkOpenDataTyConRhs = OpenTyCon Nothing False - -mkOpenNewTyConRhs :: AlgTyConRhs -mkOpenNewTyConRhs = OpenTyCon Nothing True +mkOpenDataTyConRhs = OpenTyCon Nothing mkDataTyConRhs :: [DataCon] -> AlgTyConRhs mkDataTyConRhs cons @@ -151,6 +148,8 @@ mkNewTyConRhs tycon_name tycon con rhs_ty = head (dataConInstOrigArgTys con (mkTyVarTys tvs)) -- Instantiate the data con with the -- type variables from the tycon + -- NB: a newtype DataCon has no existentials; hence the + -- call to dataConInstOrigArgTys has the right type args etad_tvs :: [TyVar] -- Matched lazily, so that mkNewTypeCoercion can etad_rhs :: Type -- return a TyCon without pulling on rhs_ty