summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Eisenberg <rae@richarde.dev>2020-09-15 15:20:43 -0400
committerRichard Eisenberg <rae@richarde.dev>2020-09-15 18:05:50 -0400
commit9cc826502c0fb811006185d92db7671d0d2c8a12 (patch)
tree3f1a66520f4da7d1d0a3340b8ba6737b2753bf57
parent07762eb5cfe735e131a7f017939a6b0ccfb28389 (diff)
downloadhaskell-wip/doc-iface-tuple-ty.tar.gz
Document IfaceTupleTywip/doc-iface-tuple-ty
-rw-r--r--compiler/GHC/Iface/Type.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/GHC/Iface/Type.hs b/compiler/GHC/Iface/Type.hs
index 57c31920b4..73ce53e34d 100644
--- a/compiler/GHC/Iface/Type.hs
+++ b/compiler/GHC/Iface/Type.hs
@@ -176,6 +176,11 @@ data IfaceType
PromotionFlag -- A bit like IfaceTyCon
IfaceAppArgs -- arity = length args
-- For promoted data cons, the kind args are omitted
+ -- Why have this? Only for efficiency: IfaceTupleTy can omit the
+ -- type arguments, as they can be recreated when deserializing.
+ -- In an experiment, removing IfaceTupleTy resulted in a 0.75% regression
+ -- in interface file size (in GHC's boot libraries).
+ -- See !3987.
type IfaceMult = IfaceType