在ghci中打印漂亮

时间:2016-07-12 21:29:04

标签: haskell show pretty-print ghci

有没有办法让ghci使用自定义漂亮打印功能而不是显示某些类型?一个更一般的问题:在交互模式下使库尽可能可用的一般准则是什么?感谢。

1 个答案:

答案 0 :(得分:9)

您可以使用--interactive-print标志指定自定义漂亮打印功能,并为任何约束C a => a -> IO ()命名范围为C的任何函数。 (有关详细信息,请参阅文档的Section 2.4.9。)

ghci --interactive-print=MyModule.prettyPrint

这意味着您可以从自己的类型类中指定自己的函数。仅针对特定类型无法执行此操作,但您的自定义类始终可以包含回退实例,例如

instance Show a => PrettyPrint a where prettyPrint = show

这至少需要OverlappingInstances才能正常工作。