So from a glance at hackage I can see 5 pretty printing libraries:
- good old HughesPJ in pretty
- wl-pprint-extras
- wl-pprint-terminfo
- wl-pprint
- ansi-wl-pprint
- wl-pprint-text
Oh wait, was that 6? 6 pretty printing libraries... no wait, we'll come in again.
Anyway, they're all Wadler-Leijen except of course HughesPJ. My understanding is that WL is simpler and faster, so is probably preferred for new code.
wl-pprint and wl-pprint-extras seem to be the same... I can't tell what's "extra" about the latter, or what "Free" means here (the module is Text.PrettyPrint.Free).
wl-pprint-terminfo and ansi-wl-pprint both seem to be variants with ANSI terminal colors and whatnot, and seem equivalent except that wl-pprint-terminfo doesn't have any docs.
wl-pprint-text, of course, uses Text. I don't know how much difference that actually makes wrt speed.
The thing that worries me about these is that many of them have many releases. This implies they've had features added, bugs fixed, etc. But have they all had the same bugs fixed? I'm inclined to favor ansi-wl-pprint because it has documentation and its last upload was in 2012, and has a bunch of releases which implies the author still works on it.
But I don't know for sure. Anyone have any advice? And I'm sure others agree that 5 almost-but-not-quite copy-paste modules could do with some consolidation...