2015-07-23 15 views
5

Chciałbym wypróbować monadę Writer w ghci. Zgodnie z zaleceniem here, starałem się używać tylko stosu do zarządzania GHC i pakietów oraz unikania instalacji globalnej.W jaki sposób można odblokować pakiety, używając tylko stosu?

z nowego Ubuntu 15.04 zainstalować po zainstalowaniu stosu:

stack setup 
mkdir lyah && cd lyah 
stack new 
stack install mtl 
stack ghci 
ghci> import Control.Monad.Writer 
Could not find module ‘Control.Monad.Writer’ 
It is a member of the hidden package ‘mtl-2.1.3.1’. 

Rozumiem, że pre-stack ghc-pkg został użyty, aby pokazać/ukryć pakietów, ale nie jestem pewien, jak postępować, żeby "odkryć" pakiet mtl.

Odpowiedz

10

Edytuj plik .cabal stack new utworzony i dodaj mtl do sekcji . Że część pliku powinna wyglądać tak:

build-depends:  base >= 4.7 && < 5 
        , mtl 

Następnie zrobić stack build przed stack ghci.

Nawiasem mówiąc, nie używaj stack install do instalowania bibliotek - jest to po prostu skrót do kopiowania plików binarnych. Na przykład. stack install hlint najpierw zbuduje pakiet, a następnie skopiuje wynikowy plik binarny do ~/.local/bin/. Zamiast tego zawsze dodajemy pakiety do pliku .cabal, jak pokazano powyżej, i używamy stack build, aby zostały zainstalowane.

Powiązane problemy