我的数据定义类似于ff。:
import Data.Time.Clock
data D = D { ...,
someDate :: UTCTime,
... }
deriving (Eq, Show)
当我编译它时,我得到了ff。错误:
No instance for (Show UTCTime)
arising from the 'deriving' clause of a data type declaration
at ...
我已经拥有time-1.1.3软件包,该软件包应根据documentation已有此实例。我的GHC版本是6.8.2。
答案 0 :(得分:28)
请勿单独导入Data.Time
套件的每个部分。它专为您导入Data.Time
而设计,它将引入常用的所有内容。
包括Show
的{{1}}个实例。
如果您不想要那么多名称空间混乱,请只导入您需要的符号:
UTCTime
或其他任何东西。无论如何这是一个好主意 - 它可以保护你免受姓名冲突 稍后如果库得到更新并开始使用您已经拥有的名称 定义
答案 1 :(得分:3)
文档在于。如果您查看Data.Time.Clock.UTC
的来源,Show
就没有UTCTime
个实例。
编辑:
正如newacct有用地指出的那样,Show UTCTime
中有一个Data.Time.LocalTime.LocalTime
的孤立实例,所以如果你导入它,你的代码就可以了。