External Core: print function types correctly, improve newtype pretty-printing
[ghc-hetmet.git] / compiler / coreSyn / PprExternalCore.lhs
index c58144c..791e36b 100644 (file)
@@ -61,7 +61,7 @@ ptdef (Newtype tcon tbinds (coercion,k) rep) =
 -- At the same time, we need the newtype decl to declare the tycon itself.
 -- Sigh.
   text "%newtype" <+> pqname tcon <+> (hsep (map ptbind tbinds)) 
-    <+> axiomclause <+> repclause
+    $$ indent (axiomclause $$ repclause)
        where  axiomclause = char '^' <+> parens (pqname coercion <+> text "::"
                                      <+> pkind k)
               repclause   = case rep of
@@ -190,7 +190,9 @@ palt (Adefault e) =
 
 plit :: Lit -> Doc
 plit (Lint i t) = parens (integer i <> text "::" <> pty t)
-plit (Lrational r t) = parens (rational r <>  text "::" <> pty t)  -- might be better to print as two integers
+-- 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)
 plit (Lchar c t) = parens (text ("\'" ++ escape [c] ++ "\'") <> text "::" <> pty t)
 plit (Lstring s t) = parens (pstring s <> text "::" <> pty t)