我有一个这样的导入:从其他文件哈斯克尔“进口资质”和“不在范围:数据构造”
import qualified Bioinformatics.DNA as DNA
看起来像这样:
data DNA = A | C | G | T
deriving (Eq, Ord, Show)
并在此功能在模块RNA其中:
module Bioinformatics.RNA
(RNA
, fromDna
) where
import qualified Bioinformatics.DNA as DNA
data RNA = A | C | G | U
deriving (Eq, Ord, Show)
fromDna :: DNA.DNA -> RNA
fromDna DNA.A = A
fromDna DNA.C = C
fromDna DNA.G = G
fromDna DNA.T = U
我收到错误:
/home/thibaud/code/bioinformatics/src/Bioinformatics/RNA.hs:46:9:
Not in scope: data constructor ‘DNA.A’
/home/thibaud/code/bioinformatics/src/Bioinformatics/RNA.hs:47:9:
Not in scope: data constructor ‘DNA.C’
/home/thibaud/code/bioinformatics/src/Bioinformatics/RNA.hs:48:9:
Not in scope: data constructor ‘DNA.G’
/home/thibaud/code/bioinformatics/src/Bioinformatics/RNA.hs:49:9:
Not in scope: data constructor ‘DNA.T’
你有一个想法,为什么? 感谢
您可能不需要'数据A; ...;数据T'类型定义。值构造函数就足够了,只要您按照下面的答案中指出的那样导出和导入它们即可。 – chi