如何实例化PrintfArg

时间:2014-07-19 10:29:58

标签: haskell

我正在尝试为我的盒装字符串实例化PrintfArg。我遵循文档中给出的示例但它不起作用,因为它找不到`formatArg'。  这是一个简化版本

import Text.Printf
data MyString = MyString String

instance PrintfArg MyString where
    formatArg (MyString s) format = formatArg s format

我收到以下错误消息

`formatArg' is not a (visible) method of class `PrintfArg'

我查看了Text.Printf的来源,确实formatArg未导出? 我做错了什么还是错误?

1 个答案:

答案 0 :(得分:5)

我猜测你正在ghc 7.6使用base 4.6.0.1Text.Printf not export the class functions, but the class function is toUPrintf,而不是formatArg

我不知道允许printfghc 7.6打印自定义类型的方法。

然而,在ghc 7.8中,一切都很好。这使用base 4.7.0.0,其中Text.Printf does export formatArg,您的代码运行正常。