diff options
author | Ian Lynagh <igloo@earth.li> | 2010-05-22 22:50:48 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2010-05-22 22:50:48 +0000 |
commit | 6577bf500f03ec6fbcb749cc3e064118d4d0bc64 (patch) | |
tree | 9b85de5232dff6cbf64f278b1c6c5637179fb6e0 /compiler | |
parent | ffe09dea3e59cb9ad35cf74a99a1ad7d61cd3626 (diff) | |
download | haskell-6577bf500f03ec6fbcb749cc3e064118d4d0bc64.tar.gz |
Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/coreSyn/PprExternalCore.lhs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/coreSyn/PprExternalCore.lhs b/compiler/coreSyn/PprExternalCore.lhs index e33c7a018e..3c4b25e420 100644 --- a/compiler/coreSyn/PprExternalCore.lhs +++ b/compiler/coreSyn/PprExternalCore.lhs @@ -10,6 +10,7 @@ import ExternalCore import Pretty import Data.Char +import Data.Ratio instance Show Module where showsPrec _ m = shows (pmodule m) @@ -188,9 +189,12 @@ palt (Adefault e) = plit :: Lit -> Doc plit (Lint i t) = parens (integer i <> text "::" <> pty t) --- we use (text (show r)) because "(rational r)" was printing out things --- like "2.0e-2" (which isn't External Core) -plit (Lrational r t) = parens (text (show r) <> text "::" <> pty t) +-- we use (text (show (numerator r))) (and the same for denominator) +-- because "(rational r)" was printing out things like "2.0e-2" (which +-- isn't External Core), and (text (show r)) was printing out things +-- like "((-1)/5)" which isn't either (it should be "(-1/5)"). +plit (Lrational r t) = parens (text (show (numerator r)) <+> char '%' + <+> text (show (denominator r)) <> text "::" <> pty t) plit (Lchar c t) = parens (text ("\'" ++ escape [c] ++ "\'") <> text "::" <> pty t) plit (Lstring s t) = parens (pstring s <> text "::" <> pty t) |