2016-08-29 15 views
0

this packageで定義されたStream型を使用しようとしています。私は、このエラーメッセージが表示できますHaskellにインストールされているパッケージから型コンストラクタをインポートできません

import Stream 

tail' :: Stream a -> Stream a 
tail' (Cons x s) = s 

:秘密結社としてインストールした後、私は簡単なテストとしてストリームにテール関数を定義しようとしたいくつかの検索後

test.hs:3:14: error: 
    Not in scope: type constructor or class `Stream' 
    Perhaps you meant `StreamT' (imported from Stream) 

test.hs:3:26: error: 
    Not in scope: type constructor or class `Stream' 
    Perhaps you meant `StreamT' (imported from Stream) 

test.hs:4:12: error: Not in scope: data constructor `Cons' 
Failed, modules loaded: none. 

を、私は問題があるかもしれないと思いましたモジュールをインポートしても型コンストラクタStreamとコンストラクタConsが自動的にインポートされるわけではありません。だから、私は

test.hs:1:20: error: Module `Stream' does not export `Stream' 

test.hs:1:28: error: Module `Stream' does not export `Cons' 
Failed, modules loaded: none. 

を取得し、これが不可解された後

import Stream (Stream, Cons) 

tail' :: Stream a -> Stream a 
tail' (Cons x s) = s 

にそれを変更しました。インストールされたパッケージを変更して、StreamConsをエクスポートリストに追加する必要がありますか?または、モジュールを正しくインポートしていないのですか?

+0

あなたがリンクするパッケージは 'Data.Stream'のみです。あなたは何か他のものをインポートしているに違いありません。 –

答えて

1

間違ったモジュールをインポートしています。あなたのリンクの一番上を見ると、モジュール名はData.Streamです。 (。Streamは、パッケージの名前である - それは名前をインストールするモジュールの集合体)あなたが呪文import Streamがすべてで働いていたという事実

import Data.Stream 

tail' :: Stream a -> Stream a 
tail' (Cons x s) = s 

を書いた場合、物事はより良い動作するはずですので、私に指示しますそのこのモジュールを提供する別のパッケージがインストールされていますが、どちらが確実かわかりません。

関連する問題