2015-07-23 8 views
5

Mi piacerebbe provare la monade Writer in ghci. Come consigliato here, ho provato a utilizzare solo lo stack per gestire GHC e pacchetti ed evitare un'installazione globale.Come possono essere nascosti i pacchetti quando si utilizza solo lo stack?

Da una nuova Ubuntu 15.04 installare, dopo l'installazione di stack:

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’. 

Capisco che pre-stack GHC-pkg è stato utilizzato per mostrare/nascondere i pacchetti, ma non sono sicuro di come procedere qui per "mostra" il pacchetto mtl.

risposta

10

Modificare il file .cabal stack new creato e aggiungere mtl alla sezione build-depends. Quella parte del file dovrebbe essere simile a questo:

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

Poi, fare un stack build prima stack ghci.

A proposito, non usare stack install per installare le librerie - è semplicemente una scorciatoia per copiare i binari. Per esempio. stack install hlint innanzitutto creerà il pacchetto e quindi copierà il file binario risultante in ~/.local/bin/. Invece, aggiungi sempre i pacchetti al file .cabal, come mostrato sopra, e usa stack build in modo che vengano installati.

Problemi correlati