当前位置:  开发笔记 > 编程语言 > 正文

导入关联数据类型的数据构造函数

如何解决《导入关联数据类型的数据构造函数》经验,为你挑选了0个好方法。

我正在使用GHC 7.10.2.有一个名为类型类RenderRouteyesod,看起来像这样:

class Eq (Route a) => RenderRoute a where
  data Route a
  renderRoute :: Route a -> ([Text], [(Text, Text)])

我在一个名为的模块中编写了一个实例,Yesod.Crud如下所示:

data Crud master p c = Crud { ... }
instance (PathPiece (Key c), Eq (Key c), PathPiece p, Eq p) => RenderRoute (Crud master p c) where
  data Route (Crud master p c)
    = EditR (Key c)
    | DeleteR (Key c)
    | IndexR p
    | AddR p
    | ViewR (Key c)

如果,在其他地方,我会像这样导入所有内容

import Yesod.Crud

那么属于我的关联数据类型的五个数据构造函数在范围内.我试图找出如何以更严格的方式编写import语句.假设我只想ViewR进入范围(也可能是数据类型Crud).如果我试试

import Yesod.Crud (ViewR)

然后GHC错误如下:

src/Import/Base.hs:9:55:
    In module ‘Yesod.Crud’:
      ‘ViewR’ is a data constructor of ‘Route’
    To import it use
      ‘import’ Yesod.Crud( Route( ViewR ) )
    or
      ‘import’ Yesod.Crud( Route(..) )

如果我尝试第一个建议,它会出错

src/Import/Base.hs:10:46:
    Module ‘Yesod.Crud’ does not export ‘Route(ViewR)’

第二个也是错的.但是,GHC的错误消息建议中的小错误并不是我感兴趣的.我想知道的是正确的方法是什么.我已经查阅了手册,我无法从它提供的进口解释中找出解决方案.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有