2011-09-07 16 views
14

ottengo questo quando voglio ricompilare xmonad di cambiare la configurazione:ambiguo nome del modulo `Prelude'

Implicit import declaration: 
    Ambiguous module name `Prelude': 
     it was found in multiple packages: base haskell98-2.0.0.0 

Xmonad è stato installato tramite pacman. Quando ho ricevuto questo errore ho rimosso xmonad da pacman e poi ho provato a installare xmonad in cabal. Ho ripreso l'errore precedente ma sono stato in grado di risolverlo rimuovendo haskell98 dal file cabal.

Ora voglio riconfigurare xmonad con MOD-Q l'errore riappare e non ho idea di come risolvere questo problema. Qualsiasi aiuto apprezzato.

Io uso GHC versione 7.0.3 (da piattaforma Haskell)

risposta

15

Prova questo:

ghc-pkg hide haskell98 
+0

Sì, ho appena riuscito a farlo funzionare con i seguenti comandi: 'cd ~/.xmonad GHC xmonad.hs -hide-pacchetto haskell98 mv xmonad-x86_64-linux xmonad-x86_64-linux.good mv xmonad xmonad-x86_64-linux' Poi ho riavviato il mio computer (riavviare X sarebbe probabilmente sufficiente). Ora ho bisogno di automatizzare questo in qualche modo. Inoltre ho bisogno di imparare come formattare i commenti. – somesoaccount

+0

Ho appena notato che hai parlato di ghc-pkg. L'ho provato prima e non ha funzionato. – somesoaccount

+0

Ok, sono confuso. Ho pensato _ prima ho provato il tuo suggerimento, ma a quanto pare non l'ho fatto. La tua soluzione funziona come un fascino! – somesoaccount

2

Nel mio caso si nasconde haskell98 purtroppo era insufficiente, ho dovuto togliere il haskell98 obsoleto dalla build- dipende dalla lista nel mio file di build .cabal (mantenendo la base> = 4 ovviamente). Diceva prima:

build-depends: 
    base >= 4, 
    haskell98 

... e poi ...

build-depends: 
    base >= 4 

Con che il messaggio di errore "ambiguo nome del modulo` Prelude '" di cui sopra scomparso.

+0

Quando l'ho fatto, ho ottenuto "Impossibile trovare il modulo" Sistema ". –

1

Vai a questa GHC bug ticket sullo stesso argomento:

GHC a partire dalla versione 7.2.1 non supporta l'utilizzo del pacchetto haskell98 e il pacchetto base allo stesso tempo. Il pacchetto haskell-src ha entrambi questi nel suo build-depends, quindi sarà necessario modificare . La maggior parte delle volte, ciò che si vuole fare è rimuovere haskell98 da build-depends e correggere eventuali importazioni di moduli Haskell 98 al punto ai loro equivalenti di base.

Il biglietto bug è stato chiuso (senza correzione), e il filer originale ha risposto:

Sì, rimuovendo haskell98 da file .cabal sembra aver risolto - è ha compilazione senza errori. Sembra che non abbia importato in haskell98, perché in base al commento nel file .cabal.

Problemi correlati