HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduleghc-9.10.3GHC2021

GHC.Types.Cpr

Types for the Constructed Product Result lattice. GHC.Core.Opt.CprAnal and GHC.Core.Opt.WorkWrap.Utils are its primary customers via idCprSig.

  • 4 types
  • 18 values
  • Packageghc-9.10.3
  • Exports23
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceCpr.hs
datadata Cpr
#
Instances3Eq, Outputable, Binary
  • Eq CprDefined in ghc-9.10.3 · GHC.Types.Cpr
  • Outputable CprDefined in ghc-9.10.3 · GHC.Types.Cpr

    BNF:

    cpr ::= ''                               -- TopCpr
         |  n                                -- FlatConCpr n
         |  n '(' cpr1 ',' cpr2 ',' ... ')'  -- ConCpr n [cpr1,cpr2,...]
         |  'b'                              -- BotCpr

    Examples: * `f x = f x` has result CPR b * `1(1,)` is a valid (nested) Cpr denotation for `(I# 42#, f 42)`.

  • Binary CprDefined in ghc-9.10.3 · GHC.Types.Cpr
datadata CprType
#

The abstract domain A_t from the original 'CPR for Haskell' paper.

Constructors

Instances3Eq, Outputable, Binary
  • Eq CprTypeDefined in ghc-9.10.3 · GHC.Types.Cpr
  • Outputable CprTypeDefined in ghc-9.10.3 · GHC.Types.Cpr

    BNF:

    cpr_ty ::= cpr               -- short form if arty == 0
            |  '\' arty '.' cpr  -- if arty > 0

    Examples: * `f x y z = f x y z` has denotation `3.b` * `g !x = (x+1, x+2)` has denotation `1.1(1,1)`.

  • Binary CprTypeDefined in ghc-9.10.3 · GHC.Types.Cpr