Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/c49210958cf2ab403baf146d7f92eef499788e0e

>---------------------------------------------------------------

commit c49210958cf2ab403baf146d7f92eef499788e0e
Author: Simon Peyton Jones <[email protected]>
Date:   Wed Aug 3 17:05:56 2011 +0100

    Print type contexts with fsep, not sep
    
    This is a slightly experimental change. When pretty-printing
    a type, instead of
          instance (Eq a,
                    Eq b,
                    Eq c,
                    Eq d,
                    Eq e,
                    Eq f,
                    Eq g,
                    Eq h,
                    Eq i,
                    Eq j,
                    Eq k,
                    Eq l) =>
                   Eq (a, b, c, d, e, f, g, h, i, j, k, l)
    you'll get
    
          instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i,
                    Eq j, Eq k, Eq l) =>
                   Eq (a, b, c, d, e, f, g, h, i, j, k, l)
    
    That is, if the context doesn't fit on one line, we break it only
    where necessary rather that after each item.
    
    The test suite comparison ignores white space, so the change
    produces no failures; its a UI thing. It's a one-character
    change in TypeRep, so easily reversed.

>---------------------------------------------------------------

 compiler/types/TypeRep.lhs |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/compiler/types/TypeRep.lhs b/compiler/types/TypeRep.lhs
index c6568e2..6cd605b 100644
--- a/compiler/types/TypeRep.lhs
+++ b/compiler/types/TypeRep.lhs
@@ -511,8 +511,29 @@ pprThetaArrow :: (Prec -> a -> SDoc) -> [Pred a] -> SDoc
 pprThetaArrow _ []      = empty
 pprThetaArrow pp [pred]
       | noParenPred pred = pprPred pp pred <+> darrow
-pprThetaArrow pp preds   = parens (sep (punctuate comma (map (pprPred pp) 
preds)))
+pprThetaArrow pp preds   = parens (fsep (punctuate comma (map (pprPred pp) 
preds)))
                             <+> darrow
+    -- Notice 'fsep' here rather that 'sep', so that
+    -- type contexts don't get displayed in a giant column
+    -- Rather than
+    --  instance (Eq a,
+    --            Eq b,
+    --            Eq c,
+    --            Eq d,
+    --            Eq e,
+    --            Eq f,
+    --            Eq g,
+    --            Eq h,
+    --            Eq i,
+    --            Eq j,
+    --            Eq k,
+    --            Eq l) =>
+    --           Eq (a, b, c, d, e, f, g, h, i, j, k, l)
+    -- we get
+    --
+    --  instance (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i,
+    --            Eq j, Eq k, Eq l) =>
+    --           Eq (a, b, c, d, e, f, g, h, i, j, k, l)
 
 noParenPred :: Pred a -> Bool
 -- A predicate that can appear without parens before a "=>"



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to