我有一个这样的文件结构:
--- Database.hs ---
data Database = ...
...
--- User.hs ---
import Database
addUser :: Update Database ()
...
--- Post.hs
import Database
addPost :: Update Database ()
...问题是,我需要在User.hs和Post.hs中调用makeAcidic ''Database [...],以使它们的函数具有酸性,但是makeAcidic同时为Database生成IsAcidic实例,因此GHC报告重复的实例声明。
发布于 2016-07-26 10:30:22
好了,我想明白了。只需将定义与模板Haskell分开:
--- Database/Types.hs ---
data Database = ...
...
--- Database.hs ---
import Database.Types
import User
import Post
makeAcidic ''Database [addUser, addPost]
--- User.hs ---
import Database.Types
addUser :: Update Database ()
...
--- Post.hs ---
import Database.Types
addPost :: Update Database ()
...https://stackoverflow.com/questions/38579990
复制相似问题