在一个模块中,我定义了一个类:
class Monad m => MonadTime m where
currentTime :: m UTCTime
已MonadTime
导出。
在不同的模块中,我想创建一个实例:
-- MonadTime is imported
instance MonadTime IO where
currentTime :: IO UTCTime
currentTime = Data.Time.Clock.getCurrentTime
然而,问题是:
“currentTime”不是“MonadTime”类的(可见)方法
如果我将实例移动到定义类的第一个模块,则一切正常。但我的想法是在主模块中提供实现。
我应该如何解决这个问题?
您需要使用该方法导出它,因此:
在另一个模块中: