私は3つのファイルを持っています。最初:haskellパッケージでデータ型を使用する方法
module AST where
data Prog a b = ...
第
module ParseProg where
import qualified AST as A
progToAST :: String -> A.Prog String String
これは宿題のために使用されるパッケージの一部です。
$ cabal configure
$ cabal build
$ cabal install
と一緒にインストールしました。私の3番目のプログラム(テスト)は
import ParseProg
val1 = progToAST "x"
-- prog :: A.Prog String String
fun1 :: Int -> Int
fun1 x = 2
-- val2 = fun1 val1
です。私もPROGのコメントを解除した場合、私はプログレやAST.Progをしようとした場合、私は
Not in scope: type constructor or class ‘A.Prog’
同じものを取得します。 VAL1のタイプは
> :type val1
> val1 :: CabParser-0.1.0.0:AST.Prog String String
を取得し、同様にコメントを解除VAL2が
CabParser-0.1のコピーCouldn't match expected type ‘Int’
with actual type ‘CabParser-0.1.0.0:AST.Prog String String’
を与えるチェック....解析エラーを与えます。 ASTでProgデータ型を使用するにはどうすればよいですか?
3つ目のプログラムでは、 'AとしてASTをインポートできません。 – Ryan
今度は '' AST 'モジュールを見つけられませんでした パッケージの隠しモジュールです'[email protected]_' –
fhyve
あなたの '.cabal'ファイルに' CabParser '。フィールド名は覚えていませんが、既に' ParseProg'がリストアップされています。 – Ryan