我正在尝试为我的盒装字符串实例化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
未导出?
我做错了什么还是错误?
答案 0 :(得分:5)
我猜测你正在ghc 7.6
使用base 4.6.0.1
而Text.Printf
not export the class functions, but the class function is toUPrintf
,而不是formatArg
。
我不知道允许printf
在ghc 7.6
打印自定义类型的方法。
然而,在ghc 7.8
中,一切都很好。这使用base 4.7.0.0
,其中Text.Printf
does export formatArg
,您的代码运行正常。