Text.PrettyPrint.HughesPJ -- has a ByteString version ever been considered?

Benedikt Huber benjovi at gmx.net
Mon Jan 24 17:15:31 CET 2011

On 24.01.11 03:01, Ryan Newton wrote:
> Hello libraries [= maintainer of 'pretty' package],
> I'm a happy user of the pretty printing library, with which I emit large
> quantities of nicely indented C++ code.  Sometimes I append large strings
> with "text x<>".
> In this case performance improvements would not go unappreciated.  Has there
> been any thought of a ByteString version?
Hi Ryan,
it would be really interesting to know whether a 'naive', 
backwards-compatible variant using Data.Text for the 'TextDetail' 
datatype already provides useful performance improvements.
I've put a small patch online

 > http://code.haskell.org/~bhuber/pretty-using-text.dpatch

which does this, and provides additional functionality via

 > ptext      :: T.Text -> Doc
 > renderText :: Doc -> T.Text

I'm curious whether this helps.
cheers, Benedikt

> I notice that the source is only 1K lines.  While I imagine that you
> wouldn't want to break the interface in a backwards compatible way, would it
> be possible to simple give the "TextDetails" type a parameter and then use a
> StringLike class (with length, append, what else?).
> Text.PrettyPrint.HughesPJ  could keep the same interface, and the generic
> version could go in Text.PrettyPrint.HughesPJGeneric or
> Text.PrettyPrint.HughesPJ.Generic or whatever.
> Cheers,
>    -Ryan
> P.S. I notice that other packages like mainland-pretty and ansi-wl-pprint
> are similarly committed to "String".
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries

More information about the Libraries mailing list