浏览了 hackage 后,我发现有五个漂亮的打印库:
- 老牌的 HughesPJ 打印库中的 pretty
- wl-pprint-extras
- wl-pprint-terminfo
- wl-pprint
- ansi-wl-pprint
- wl-pprint-text
哦等等,那是六个吗?6个漂亮的打印库...不对,我们再数一次。
无论如何,它们都是 Wadler-Leijen 风格的打印库,除了 HughesPJ。我的理解是 WL 更简单更快,因此在编写新代码时可能会更受欢迎。
wl-pprint 和 wl-pprint-extras 看起来是相同的...我无法确定后者的“extra”是什么意思,或者这里的“Free”是什么意思(该模块是 Text.PrettyPrint.Free)。
wl-pprint-terminfo 和 ansi-wl-pprint 都似乎是带有 ANSI 终端颜色之类的变体,它们看起来是相等的,只是 wl-pprint-terminfo 没有任何文档。
wl-pprint-text 当然使用 Text。我不知道这实际上对速度有多大影响。
让我担心的是,其中很多库都经历了很多次发布。这意味着它们添加了功能、修复了错误等。但是它们是否都修复了相同的错误呢?我倾向于选择 ansi-wl-pprint,因为它有文档,最近一次上传是在2012年,并且已经发布了很多版本,这表明作者仍在维护。
但我不确定。有人有什么建议吗?我相信其他人也认为,这五个几乎但又不完全相同的模块可以进行一些合并...