ghc-lib-parser-9.14.1.20251220: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Types.DefaultEnv

Synopsis

- data ClassDefaults = ClassDefaults {
  - cd_class :: Class
  - cd_types :: [Type]
  - cd_provenance :: DefaultProvenance
  - cd_warn :: Maybe (WarningTxt GhcRn)
  }
- data DefaultProvenance
  - = DP_Local {
    - defaultDeclLoc :: SrcSpan
    - defaultDeclH98 :: Bool
    }
  - | DP_Builtin
  - | DP_Imported Module
- type DefaultEnv = NameEnv ClassDefaults
- emptyDefaultEnv :: DefaultEnv
- isEmptyDefaultEnv :: DefaultEnv -> Bool
- defaultEnv :: [ClassDefaults] -> DefaultEnv
- unitDefaultEnv :: ClassDefaults -> DefaultEnv
- lookupDefaultEnv :: DefaultEnv -> Name -> Maybe ClassDefaults
- filterDefaultEnv :: (ClassDefaults -> Bool) -> DefaultEnv -> DefaultEnv
- defaultList :: DefaultEnv -> [ClassDefaults]
- plusDefaultEnv :: DefaultEnv -> DefaultEnv -> DefaultEnv
- mkDefaultEnv :: [(Name, ClassDefaults)] -> DefaultEnv
- insertDefaultEnv :: ClassDefaults -> DefaultEnv -> DefaultEnv
- isHaskell2010Default :: DefaultProvenance -> Bool

# Documentation

data ClassDefaults #

Defaulting type assignments for the given class.

Constructors

ClassDefaults |
Fields cd_class :: Class The class whose defaults are being defined cd_types :: [Type] cd_provenance :: DefaultProvenance Where the defaults came from see Note [Default exports] in GHC.Tc.Gen.Export cd_warn :: Maybe (WarningTxt GhcRn) Warning emitted when the default is used

#### Instances

Instances details

Data ClassDefaults # |
Instance details Defined in GHC.Types.DefaultEnv Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ClassDefaults -> c ClassDefaults # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ClassDefaults # toConstr :: ClassDefaults -> Constr # dataTypeOf :: ClassDefaults -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ClassDefaults) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ClassDefaults) # gmapT :: (forall b. Data b => b -> b) -> ClassDefaults -> ClassDefaults # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ClassDefaults -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ClassDefaults -> r # gmapQ :: (forall d. Data d => d -> u) -> ClassDefaults -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ClassDefaults -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ClassDefaults -> m ClassDefaults # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassDefaults -> m ClassDefaults # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ClassDefaults -> m ClassDefaults #
Outputable ClassDefaults # |
Instance details Defined in GHC.Types.DefaultEnv Methods ppr :: ClassDefaults -> SDoc #

data DefaultProvenance #

The provenance of a collection of default types for a class. see Note [DefaultProvenance] for more details

Constructors

DP_Local | A locally defined default declaration.
Fields defaultDeclLoc :: SrcSpan The `SrcSpan` of the default declaration defaultDeclH98 :: Bool Is this a Haskell 98 default declaration?
DP_Builtin | Built-in class defaults.
DP_Imported | Imported class defaults.
Fields Module The module from which the defaults were imported

#### Instances

Instances details

Data DefaultProvenance # |
Instance details Defined in GHC.Types.DefaultEnv Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DefaultProvenance -> c DefaultProvenance # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DefaultProvenance # toConstr :: DefaultProvenance -> Constr # dataTypeOf :: DefaultProvenance -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DefaultProvenance) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DefaultProvenance) # gmapT :: (forall b. Data b => b -> b) -> DefaultProvenance -> DefaultProvenance # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DefaultProvenance -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DefaultProvenance -> r # gmapQ :: (forall d. Data d => d -> u) -> DefaultProvenance -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DefaultProvenance -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DefaultProvenance -> m DefaultProvenance # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DefaultProvenance -> m DefaultProvenance # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DefaultProvenance -> m DefaultProvenance #
Outputable DefaultProvenance # |
Instance details Defined in GHC.Types.DefaultEnv Methods ppr :: DefaultProvenance -> SDoc #
Eq DefaultProvenance # |
Instance details Defined in GHC.Types.DefaultEnv Methods (==) :: DefaultProvenance -> DefaultProvenance -> Bool # (/=) :: DefaultProvenance -> DefaultProvenance -> Bool #

type DefaultEnv = NameEnv ClassDefaults #

Default environment mapping class name `Name` to their default type lists

NB: this includes Haskell98 default declarations, at the `Num` key.

emptyDefaultEnv :: DefaultEnv #

isEmptyDefaultEnv :: DefaultEnv -> Bool #

defaultEnv :: [ClassDefaults] -> DefaultEnv #

unitDefaultEnv :: ClassDefaults -> DefaultEnv #

lookupDefaultEnv :: DefaultEnv -> Name -> Maybe ClassDefaults #

filterDefaultEnv :: (ClassDefaults -> Bool) -> DefaultEnv -> DefaultEnv #

defaultList :: DefaultEnv -> [ClassDefaults] #

plusDefaultEnv :: DefaultEnv -> DefaultEnv -> DefaultEnv #

mkDefaultEnv :: [(Name, ClassDefaults)] -> DefaultEnv #

Create a `DefaultEnv` from a list of (Name, ClassDefaults) pairs it is useful if we don't want to poke into the `ClassDefaults` structure to get the `Name` of the class, it can be problematic, see #25858

insertDefaultEnv :: ClassDefaults -> DefaultEnv -> DefaultEnv #

isHaskell2010Default :: DefaultProvenance -> Bool #