Hi,

When pretty printing this haskell code:

   case x of 
      -1 -> x

The pretty printer in PPSemiColon mode produces something like:

   case x of
      {- 1

thus making a false comment, due to the brace crashing into the
negative sign.

I think this is a design issue, but probably the offending code is:

   topLevel :: Doc -> [Doc] -> Doc
   topLevel header dl = do
            e <- fmap layout getPPEnv
            case e of
                PPOffsideRule -> header $$ vcat dl
                PPSemiColon -> header $$ (braces . vcat . punctuate semi) dl
                PPInLine -> header $$ (braces . vcat . punctuate semi) dl
                PPNoLayout -> header <+> (braces . hsep . punctuate semi) dl


Also, while I'm on the topic of the pretty printer I wonder whether
it would be possible (and considered a good idea) to add an argument
to PPHsMode that allows for wider lines of code, I think currently it is
starting to get flustered around 100 columns or so.  Perhaps there is already
a good way of doing this and I'm just missing it?

The reason I ask is that I am pretty printing some code which is the output
of a program transformation. Quite often the code creeps off to the far rhs,
at this point the pretty printer starts aggressively breaking lines which
is less than pretty.

Cheers,
Bernie.
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to