diff options
Diffstat (limited to 'compiler/main')
-rw-r--r-- | compiler/main/DynFlags.hs | 2 | ||||
-rw-r--r-- | compiler/main/PprTyThing.hs | 12 |
2 files changed, 4 insertions, 10 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 5efe8b3486..55260db67a 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -3210,6 +3210,7 @@ xFlags = [ flagSpec "TraditionalRecordSyntax" LangExt.TraditionalRecordSyntax, flagSpec "TransformListComp" LangExt.TransformListComp, flagSpec "TupleSections" LangExt.TupleSections, + flagSpec "TypeApplications" LangExt.TypeApplications, flagSpec "TypeInType" LangExt.TypeInType, flagSpec "TypeFamilies" LangExt.TypeFamilies, flagSpec "TypeOperators" LangExt.TypeOperators, @@ -3324,6 +3325,7 @@ impliedXFlags , (LangExt.TemplateHaskell, turnOn, LangExt.TemplateHaskellQuotes) , (LangExt.Strict, turnOn, LangExt.StrictData) + , (LangExt.TypeApplications, turnOn, LangExt.AllowAmbiguousTypes) ] -- Note [Documenting optimisation flags] diff --git a/compiler/main/PprTyThing.hs b/compiler/main/PprTyThing.hs index 365a57c7b9..d55b5083ec 100644 --- a/compiler/main/PprTyThing.hs +++ b/compiler/main/PprTyThing.hs @@ -147,18 +147,10 @@ ppr_ty_thing hdr_only path ty_thing -- Nothing is unexpected here; TyThings have External names pprTypeForUser :: Type -> SDoc --- We do two things here. --- a) We tidy the type, regardless --- b) Swizzle the foralls to the top, so that without --- -fprint-explicit-foralls we'll suppress all the foralls --- Prime example: a class op might have type --- forall a. C a => forall b. Ord b => stuff --- Then we want to display --- (C a, Ord b) => stuff +-- The type is tidied pprTypeForUser ty - = pprSigmaType (mkInvSigmaTy tvs ctxt tau) + = pprSigmaType tidy_ty where - (tvs, ctxt, tau) = tcSplitSigmaTy tidy_ty (_, tidy_ty) = tidyOpenType emptyTidyEnv ty -- Often the types/kinds we print in ghci are fully generalised -- and have no free variables, but it turns out that we sometimes |