| Opt_RecordPuns
| Opt_ViewPatterns
| Opt_GADTs
- | Opt_RelaxedPolyRec
+ | Opt_OutsideIn
+ | Opt_RelaxedPolyRec -- Deprecated
| Opt_NPlusKPatterns
| Opt_DoAndIfThenElse
, ([2], Opt_LiberateCase)
, ([2], Opt_SpecConstr)
+ , ([2], Opt_RegsGraph)
-- , ([2], Opt_StaticArgumentTransformation)
-- Max writes: I think it's probably best not to enable SAT with -O2 for the
, Bool -> DynP ()) -- Extra action to run when the flag is found
-- Typically, emit a warning or error
-- True <=> we are turning the flag on
- -- False <=> we are turning the flag on
+ -- False <=> we are turning the flag off
mkFlag :: Bool -- ^ True <=> it should be turned on
( "AlternativeLayoutRuleTransitional",Opt_AlternativeLayoutRuleTransitional, nop ),
( "DatatypeContexts", Opt_DatatypeContexts, nop ),
( "MonoLocalBinds", Opt_MonoLocalBinds, nop ),
- ( "RelaxedPolyRec", Opt_RelaxedPolyRec, nop ),
+ ( "RelaxedPolyRec", Opt_RelaxedPolyRec,
+ \ turn_on -> if not turn_on
+ then deprecate "You can't turn off RelaxedPolyRec any more"
+ else return () ),
( "ExtendedDefaultRules", Opt_ExtendedDefaultRules, nop ),
( "ImplicitParams", Opt_ImplicitParams, nop ),
( "ScopedTypeVariables", Opt_ScopedTypeVariables, nop ),
, (Opt_ExistentialQuantification, Opt_ExplicitForAll)
, (Opt_PolymorphicComponents, Opt_ExplicitForAll)
- , (Opt_GADTs, Opt_RelaxedPolyRec) -- We want type-sig variables to
+ , (Opt_GADTs, Opt_OutsideIn) -- We want type-sig variables to
-- be completely rigid for GADTs
- , (Opt_TypeFamilies, Opt_RelaxedPolyRec) -- Trac #2944 gives a nice example
+ , (Opt_TypeFamilies, Opt_OutsideIn) -- Trac #2944 gives a nice example
, (Opt_TypeFamilies, Opt_KindSignatures) -- Type families use kind signatures
-- all over the place
- , (Opt_ScopedTypeVariables, Opt_RelaxedPolyRec) -- Ditto for scoped type variables; see
+ , (Opt_ScopedTypeVariables, Opt_OutsideIn) -- Ditto for scoped type variables; see
-- Note [Scoped tyvars] in TcBinds
, (Opt_ImpredicativeTypes, Opt_RankNTypes)