【发布时间】:2011-07-12 12:38:48
【问题描述】:
我收到一个我不太明白的错误:
AnotherModule.hs:6:38:
`something' is not a (visible) field of constructor `M.SomeType'
AnotherModule.hs:7:38:
`somethingElse' is not a (visible) field of constructor `M.SomeType'
谁能解释我收到此错误的原因以及如何修复它?
Main.hs
import qualified SomeModule as M
import qualified AnotherModule as A
main = print $ A.makeSomeType M.Constructor1
SomeModule.hs
module SomeModule (SomeType(..), AnotherType(..)) where
data SomeType = SomeType { something :: [String]
, somethingElse :: [AnotherType]
} deriving (Show)
data AnotherType = Constructor1
| Constructor2
deriving (Show)
另一个模块.hs
module AnotherModule (makeSomeType) where
import qualified SomeModule as M
makeSomeType :: M.AnotherType -> M.SomeType
makeSomeType something = M.SomeType { something = []
, somethingElse = [something]
}
【问题讨论】:
标签: haskell constructor algebraic-data-types