The language extensions known to GHC.
Note that there is an orphan Binary instance for this type supplied by
the GHC.LanguageExtensions module provided by ghc-boot. We can't provide
here as this would require adding transitive dependencies to the
template-haskell package, which must have a minimal dependency set.
CppOverlappingInstancesUndecidableInstancesIncoherentInstancesUndecidableSuperClassesMonomorphismRestrictionMonoLocalBindsDeepSubsumptionRelaxedPolyRecExtendedDefaultRulesForeignFunctionInterfaceUnliftedFFITypesInterruptibleFFICApiFFIGHCForeignImportPrimJavaScriptFFIParallelArraysArrowsTemplateHaskellTemplateHaskellQuotesQualifiedDoQuasiQuotesImplicitParamsImplicitPreludeScopedTypeVariablesAllowAmbiguousTypesUnboxedTuplesUnboxedSumsUnliftedNewtypesUnliftedDatatypesBangPatternsTypeFamiliesTypeFamilyDependenciesTypeInTypeOverloadedStringsOverloadedListsNumDecimalsDisambiguateRecordFieldsRecordWildCardsNamedFieldPunsViewPatternsGADTsGADTSyntaxNPlusKPatternsDoAndIfThenElseBlockArgumentsRebindableSyntaxConstraintKindsPolyKindsDataKindsTypeDataInstanceSigsApplicativeDoLinearTypesRequiredTypeArgumentsStandaloneDerivingDeriveDataTypeableAutoDeriveTypeableDeriveFunctorDeriveTraversableDeriveFoldableDeriveGenericDefaultSignaturesDeriveAnyClassDeriveLiftDerivingStrategiesDerivingViaTypeSynonymInstancesFlexibleContextsFlexibleInstancesConstrainedClassMethodsMultiParamTypeClassesNullaryTypeClassesFunctionalDependenciesUnicodeSyntaxExistentialQuantificationMagicHashEmptyDataDeclsKindSignaturesRoleAnnotationsParallelListCompTransformListCompMonadComprehensionsGeneralizedNewtypeDerivingRecursiveDoPostfixOperatorsTupleSectionsPatternGuardsLiberalTypeSynonymsRankNTypesImpredicativeTypesTypeOperatorsExplicitNamespacesPackageImportsExplicitForAllAlternativeLayoutRuleAlternativeLayoutRuleTransitionalDatatypeContextsNondecreasingIndentationRelaxedLayoutTraditionalRecordSyntaxLambdaCaseMultiWayIfBinaryLiteralsNegativeLiteralsHexFloatLiteralsDuplicateRecordFieldsOverloadedLabelsEmptyCasePatternSynonymsPartialTypeSignaturesNamedWildCardsStaticPointersTypeApplicationsStrictStrictDataEmptyDataDerivingNumericUnderscoresQuantifiedConstraintsStarIsTypeImportQualifiedPostCUSKsStandaloneKindSignaturesLexicalNegationFieldSelectorsOverloadedRecordDotOverloadedRecordUpdateTypeAbstractionsExtendedLiteralsListTuplePuns
Instances7Bounded, Enum, Eq, Ord, Show, Generic, …
Bounded ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeEnum ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeEq ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeOrd ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeShow ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeGeneric ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.Typetype Rep Extension = D1 ('MetaDataDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.Type"Extension"
"GHC.LanguageExtensions.Type"
"ghc-boot-th-9.10.3-9652"
'False) (((((((C1 ('MetaCons"Cpp"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverlappingInstances"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"UndecidableInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"IncoherentInstances"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"UndecidableSuperClasses"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MonomorphismRestriction"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MonoLocalBinds"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeepSubsumption"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"RelaxedPolyRec"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExtendedDefaultRules"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ForeignFunctionInterface"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnliftedFFITypes"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"InterruptibleFFI"
'PrefixI 'False) U1 :+: C1 ('MetaCons"CApiFFI"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"GHCForeignImportPrim"
'PrefixI 'False) U1 :+: C1 ('MetaCons"JavaScriptFFI"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"ParallelArrays"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Arrows"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TemplateHaskell"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TemplateHaskellQuotes"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"QualifiedDo"
'PrefixI 'False) U1 :+: C1 ('MetaCons"QuasiQuotes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ImplicitParams"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImplicitPrelude"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"ScopedTypeVariables"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AllowAmbiguousTypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"UnboxedTuples"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnboxedSums"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"UnliftedNewtypes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnliftedDatatypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"BangPatterns"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeFamilies"
'PrefixI 'False) U1))))) :+: (((((C1 ('MetaCons"TypeFamilyDependencies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TypeInType"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OverloadedStrings"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverloadedLists"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"NumDecimals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DisambiguateRecordFields"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RecordWildCards"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NamedFieldPuns"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"ViewPatterns"
'PrefixI 'False) U1 :+: C1 ('MetaCons"GADTs"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"GADTSyntax"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NPlusKPatterns"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"DoAndIfThenElse"
'PrefixI 'False) U1 :+: C1 ('MetaCons"BlockArguments"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RebindableSyntax"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ConstraintKinds"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"PolyKinds"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DataKinds"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeData"
'PrefixI 'False) U1 :+: C1 ('MetaCons"InstanceSigs"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"ApplicativeDo"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LinearTypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RequiredTypeArguments"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StandaloneDeriving"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"DeriveDataTypeable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AutoDeriveTypeable"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"DeriveFunctor"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveTraversable"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"DeriveFoldable"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveGeneric"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"DefaultSignatures"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"DeriveAnyClass"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DeriveLift"
'PrefixI 'False) U1))))))) :+: ((((((C1 ('MetaCons"DerivingStrategies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DerivingVia"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeSynonymInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FlexibleContexts"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"FlexibleInstances"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ConstrainedClassMethods"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"MultiParamTypeClasses"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NullaryTypeClasses"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"FunctionalDependencies"
'PrefixI 'False) U1 :+: C1 ('MetaCons"UnicodeSyntax"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"ExistentialQuantification"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MagicHash"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"EmptyDataDecls"
'PrefixI 'False) U1 :+: C1 ('MetaCons"KindSignatures"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RoleAnnotations"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ParallelListComp"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"TransformListComp"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MonadComprehensions"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"GeneralizedNewtypeDeriving"
'PrefixI 'False) U1 :+: C1 ('MetaCons"RecursiveDo"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"PostfixOperators"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TupleSections"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"PatternGuards"
'PrefixI 'False) U1 :+: C1 ('MetaCons"LiberalTypeSynonyms"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"RankNTypes"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImpredicativeTypes"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeOperators"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExplicitNamespaces"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"PackageImports"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExplicitForAll"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"AlternativeLayoutRule"
'PrefixI 'False) U1 :+: C1 ('MetaCons"AlternativeLayoutRuleTransitional"
'PrefixI 'False) U1))))) :+: (((((C1 ('MetaCons"DatatypeContexts"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NondecreasingIndentation"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"RelaxedLayout"
'PrefixI 'False) U1 :+: C1 ('MetaCons"TraditionalRecordSyntax"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"LambdaCase"
'PrefixI 'False) U1 :+: C1 ('MetaCons"MultiWayIf"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"BinaryLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"NegativeLiterals"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"HexFloatLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"DuplicateRecordFields"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"OverloadedLabels"
'PrefixI 'False) U1 :+: C1 ('MetaCons"EmptyCase"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"PatternSynonyms"
'PrefixI 'False) U1 :+: C1 ('MetaCons"PartialTypeSignatures"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"NamedWildCards"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StaticPointers"
'PrefixI 'False) U1)))) :+: ((((C1 ('MetaCons"TypeApplications"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Strict"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"StrictData"
'PrefixI 'False) U1 :+: C1 ('MetaCons"EmptyDataDeriving"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"NumericUnderscores"
'PrefixI 'False) U1 :+: C1 ('MetaCons"QuantifiedConstraints"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"StarIsType"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ImportQualifiedPost"
'PrefixI 'False) U1))) :+: (((C1 ('MetaCons"CUSKs"
'PrefixI 'False) U1 :+: C1 ('MetaCons"StandaloneKindSignatures"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"LexicalNegation"
'PrefixI 'False) U1 :+: C1 ('MetaCons"FieldSelectors"
'PrefixI 'False) U1)) :+: ((C1 ('MetaCons"OverloadedRecordDot"
'PrefixI 'False) U1 :+: C1 ('MetaCons"OverloadedRecordUpdate"
'PrefixI 'False) U1) :+: (C1 ('MetaCons"TypeAbstractions"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"ExtendedLiterals"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ListTuplePuns"
'PrefixI 'False) U1))))))))