【问题标题】:Haskell: acid-state over multiple files?Haskell:多个文件的酸性状态?
【发布时间】:2016-07-26 10:30:21
【问题描述】:

我有这样的文件结构:

--- Database.hs ---
data Database = ...
...

--- User.hs ---
import Database
addUser :: Update Database ()
...

--- Post.hs
import Database
addPost :: Update Database ()
...

问题是我需要在User.hsPost.hs 中调用makeAcidic ''Database [...] 以使它们的功能变酸,但makeAcidic 同时为Database 生成IsAcidic 实例所以GHC 抱怨重复的实例声明。

【问题讨论】:

    标签: haskell acid-state


    【解决方案1】:

    好的,所以我想通了。只需将定义与模板 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 ()
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 2014-08-21
      相关资源
      最近更新 更多