| Opt_RecordPuns
| Opt_GADTs
| Opt_RelaxedPolyRec -- -X=RelaxedPolyRec
+ | Opt_DeriveDataTypeable
| Opt_TypeSynonymInstances
| Opt_FlexibleContexts
| Opt_FlexibleInstances
( "UnboxedTuples", Opt_UnboxedTuples ),
( "ExpressionSignaturesUnboxedTuples", Opt_ExpressionSignaturesUnboxedTuples ),
( "TypeSynonymUnboxedTuples", Opt_TypeSynonymUnboxedTuples ),
+ ( "DeriveDataTypeable", Opt_DeriveDataTypeable ),
( "TypeSynonymInstances", Opt_TypeSynonymInstances ),
( "FlexibleContexts", Opt_FlexibleContexts ),
( "FlexibleInstances", Opt_FlexibleInstances ),
, Opt_ExpressionSignaturesUnboxedTuples
, Opt_TypeSynonymUnboxedTuples
, Opt_TypeSynonymInstances
+ , Opt_DeriveDataTypeable
, Opt_FlexibleContexts
, Opt_FlexibleInstances
, Opt_ConstrainedClassMethods
; (rep_tc, rep_tc_args) <- tcLookupFamInstExact tycon full_tc_args
- ; mayDeriveDataTypeable <- doptM Opt_GlasgowExts
+ ; mayDeriveDataTypeable <- doptM Opt_DeriveDataTypeable
; newtype_deriving <- doptM Opt_GeneralizedNewtypeDeriving
; overlap_flag <- getOverlapFlag