在ghci中的漂亮打印

12

是否有一种方法可以让ghci在特定类型上使用自定义的漂亮打印函数,而不是show函数?更一般的问题是:如何使库在交互模式下尽可能易用?谢谢。

1个回答

12

您可以使用--interactive-print标志并为作用域中具有类型C a => a -> IO ()的任何约束C命名的函数指定自定义漂亮打印函数。(有关详细信息,请参见文档的第2.4.9节。)

ghci --interactive-print=MyModule.prettyPrint
这意味着您可以从自己的类型类中指定自己的函数。没有办法仅针对特定类型执行此操作,但是您的自定义类始终可以包括一个回退实例,例如:
instance Show a => PrettyPrint a where prettyPrint = show

这将需要至少OverlappingInstances才能运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接