GHC.Core.UsageEnv

ghc-9.10.0.20240413: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.Core.UsageEnv

Synopsis

- data Usage
  - = Zero
  - | Bottom
  - | MUsage Mult
- data UsageEnv
- addUE :: UsageEnv -> UsageEnv -> UsageEnv
- addUsage :: Usage -> Usage -> Usage
- bottomUE :: UsageEnv
- deleteUE :: NamedThing n => UsageEnv -> n -> UsageEnv
- lookupUE :: NamedThing n => UsageEnv -> n -> Usage
- popUE :: NamedThing n => UsageEnv -> n -> (Usage, UsageEnv)
- scaleUE :: Mult -> UsageEnv -> UsageEnv
- scaleUsage :: Mult -> Usage -> Usage
- supUE :: UsageEnv -> UsageEnv -> UsageEnv
- supUEs :: [UsageEnv] -> UsageEnv
- singleUsageUE :: Id -> UsageEnv
- zeroUE :: UsageEnv

# Documentation

data Usage Source #

Constructors

Zero |
Bottom |
MUsage Mult |

#### Instances

Instances details

Outputable Usage Source # |
Instance details Defined in GHC.Core.UsageEnv Methods ppr :: Usage -> SDoc Source #

data UsageEnv Source #

#### Instances

Instances details

Outputable UsageEnv Source # |
Instance details Defined in GHC.Core.UsageEnv Methods ppr :: UsageEnv -> SDoc Source #

addUE :: UsageEnv -> UsageEnv -> UsageEnv Source #

addUsage :: Usage -> Usage -> Usage Source #

bottomUE :: UsageEnv Source #

deleteUE :: NamedThing n => UsageEnv -> n -> UsageEnv Source #

lookupUE :: NamedThing n => UsageEnv -> n -> Usage Source #

|lookupUE x env| returns the multiplicity assigned to |x| in |env|, if |x| is not bound in |env|, then returns |Zero| or |Bottom|.

popUE :: NamedThing n => UsageEnv -> n -> (Usage, UsageEnv) Source #

scaleUE :: Mult -> UsageEnv -> UsageEnv Source #

scaleUsage :: Mult -> Usage -> Usage Source #

supUE :: UsageEnv -> UsageEnv -> UsageEnv Source #

supUEs :: [UsageEnv] -> UsageEnv Source #

singleUsageUE :: Id -> UsageEnv Source #

Record a single usage of an Id, i.e. {n: 1} Exception: We do not record external names (both GlobalIds and top-level LocalIds) because they're not relevant to linearity checking.

zeroUE :: UsageEnv Source #