diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2021-04-01 09:28:24 +0100 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2021-04-01 09:28:46 +0100 |
commit | 6edf11b2376a3426401ded541e5bd9d665775099 (patch) | |
tree | 610a4bf85099bc81806b560fd8514d19441a5189 /compiler | |
parent | 9c9e40e59214b1e358c85852218f3a67e712a748 (diff) | |
download | haskell-wip/core-expr-strict.tar.gz |
Experiment: Try making CoreExpr binder fields strictwip/core-expr-strict
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/GHC/Core.hs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/GHC/Core.hs b/compiler/GHC/Core.hs index 2c30b6f3d4..fe8188cf23 100644 --- a/compiler/GHC/Core.hs +++ b/compiler/GHC/Core.hs @@ -252,12 +252,12 @@ is better for at least three reasons: -- If you edit this type, you may need to update the GHC formalism -- See Note [GHC Formalism] in GHC.Core.Lint data Expr b - = Var Id + = Var !Id | Lit Literal | App (Expr b) (Arg b) - | Lam b (Expr b) + | Lam !b (Expr b) | Let (Bind b) (Expr b) - | Case (Expr b) b Type [Alt b] -- See Note [Case expression invariants] + | Case (Expr b) !b Type [Alt b] -- See Note [Case expression invariants] -- and Note [Why does Case have a 'Type' field?] | Cast (Expr b) Coercion | Tick CoreTickish (Expr b) @@ -276,7 +276,7 @@ type Arg b = Expr b -- If you edit this type, you may need to update the GHC formalism -- See Note [GHC Formalism] in GHC.Core.Lint data Alt b - = Alt AltCon [b] (Expr b) + = Alt AltCon ![b] (Expr b) deriving (Data) -- | A case alternative constructor (i.e. pattern match) |