2016-08-29 8 views
0

Ich versuche den in this package definierten Typ Stream zu verwenden. Nach der Installation mit mit Kabale habe ich versucht, den Schwanz Funktion auf Ströme als einen schnellen Test zu definieren:Kann den Typkonstruktor nicht vom installierten Paket in Haskell importieren

import Stream 

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

, die mir diese Fehlermeldung gibt:

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. 

nach einigen Recherchen, dachte ich, das Problem sein könnte Durch das Importieren des Moduls wird der Typkonstruktor Stream und der Konstruktor Cons nicht automatisch importiert. So habe ich es zu

import Stream (Stream, Cons) 

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

wonach ich

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. 

und dies ist rätselhaft. Muss ich das installierte Paket ändern und Stream und Cons zu seiner Exportliste hinzufügen? Oder importiere ich das Modul nicht korrekt?

+0

Das Paket, das Sie verknüpfen, hat nur 'Data.Stream'. Sie müssen etwas anderes importieren. –

Antwort

1

Sie importieren das falsche Modul; Wenn Sie oben auf den Link klicken, lautet der Modulname Data.Stream. (Stream ist der Name des Pakets -. Es nennt eine Sammlung von Modulen installiert werden), so sollte die Dinge besser funktionieren, wenn Sie

import Data.Stream 

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

Die Tatsache, schreiben, dass die Beschwörung import Stream überhaupt gearbeitet zeigt mir, dass Sie habe ein anderes Paket installiert, das dieses Modul bereitstellt, obwohl ich nicht sicher bin, welches.

Verwandte Themen