2016-08-20 4 views
0

ich neue Art in der Datei file.hs definiertHaskell: Fehler beim neuen Typ deklariert

module FunctorChapter 
    (
    FixMePls 
) 
    where 
    data FixMePls a = 
    Fixme | Pls a 
    deriving (Show,Eq) 

wenn die file.hs in GHCI importiert wird es erfolgreich geladen, aber ich bin nicht in der Lage den Konstruktor verwenden Pls

Main File> Pls "test" 
<interactive>:5:1: Not in scope: data constructor ‘Pls’ 

während ich kann den Konstruktor verwenden Sie einfach

Main File> Just "me" 
Just "me" 

Was fehlt in meinem Typ?

+0

Es funktioniert immer noch für mich. – ThreeFx

+0

hast du auch 'module() where' benutzt? –

+0

Ihr Dateiname sollte mit dem Modulnamen übereinstimmen - d. H. Das Modul 'FunctorChapter' sollte sich in der Datei' FunctorChapter.hs' befinden. – ErikR

Antwort

3

Sie haben das Modul FunctorChapter nicht geladen, aber ein anderes Modul File.

+0

was ich mit Datei meinen Dateinamen meinte, außerdem benutze ich stack so alles was ich gemacht habe ist 'stack ghci' um den Code zu testen, und ich habe etwas erkannt wenn ich benutze:' functorChapter' laden es funktioniert aber wenn ich 'stack ghci' benutze es nicht –

+0

Beachte die Eingabeaufforderung: es heißt' Main File> '. Dies zeigt, dass 'FunctorChapter' nicht geladen ist. "Wenn ich folgendes benutze: lade functorChapter funktioniert es, aber wenn ich stack ghci benutze es nicht" Nach dem Ausführen von 'stack ghci' musst du die Module noch laden, siehe https://docs.haskellstack.org/en/stable/ GUIDE/# ghci-the-repl. –