diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2016-11-13 16:17:37 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-11-13 16:17:38 -0500 |
commit | 6c0f10fac767c49b65ed71e8eb8e78ca4f9062d5 (patch) | |
tree | 4d37b9d01c1bf38d6356471ddb99ca4327e945c6 /compiler/utils/Binary.hs | |
parent | 8cb7bc5c234eb8168068f65b8888597106fec302 (diff) | |
download | haskell-6c0f10fac767c49b65ed71e8eb8e78ca4f9062d5.tar.gz |
Kill Type pretty-printer
Here we consolidate the pretty-printing logic for types in IfaceType. We
need IfaceType regardless and the printer for Type can be implemented in
terms of that for IfaceType. See #11660.
Note that this is very much a work-in-progress. Namely I still have yet
to ponder how to ease the hs-boot file situation, still need to rip out
more dead code, need to move some of the special cases for, e.g., `*` to
the IfaceType printer, and need to get it to validate. That being said,
it comes close to validating as-is.
Test Plan: Validate
Reviewers: goldfire, austin
Subscribers: goldfire, thomie, simonpj
Differential Revision: https://phabricator.haskell.org/D2528
GHC Trac Issues: #11660
Diffstat (limited to 'compiler/utils/Binary.hs')
-rw-r--r-- | compiler/utils/Binary.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/utils/Binary.hs b/compiler/utils/Binary.hs index 61e1ee8cd1..26a4d19366 100644 --- a/compiler/utils/Binary.hs +++ b/compiler/utils/Binary.hs @@ -750,6 +750,14 @@ instance Binary FastString where UserData { ud_get_fs = get_fs } -> get_fs bh -- Here to avoid loop +instance Binary LeftOrRight where + put_ bh CLeft = putByte bh 0 + put_ bh CRight = putByte bh 1 + + get bh = do { h <- getByte bh + ; case h of + 0 -> return CLeft + _ -> return CRight } instance Binary Fingerprint where put_ h (Fingerprint w1 w2) = do put_ h w1; put_ h w2 |