How to avoid trailing whitespace generated by Text.PrettyPrint.HughesPJ?

Peter Simons simons at cryp.to
Fri Mar 8 13:10:07 CET 2013


Hi guys,

it seems to me like the HughesPJ pretty printer has trouble dealing with
empty lines in a nested environment. Consider the following example:

> import Text.PrettyPrint.HughesPJ
> test1 = putStrLn $ render $ nest 4 $ vcat $ map text [ "line 1", "", "line 2" ]

The 'test1' function prints the following output, where blanks have been
replaced by underscores to make them visible:

  *Main> test1
  ____line_1
  ____
  ____line_2

Now, I would like to avoid this kind of trailing whitespace in the
document I'm generated -- but how? My first thought was to replace
text "" by empty, but that change effectively removes the empty line
altogether:

> test2 = putStrLn $ render $ nest 4 $ vcat $ [ text "line 1", empty , text "line 2" ]

  *Main> test2
  ____line_1
  ____line_2

Is there another way to accomplish what I want?

Take care,
Peter




More information about the Libraries mailing list