2011-09-07 9 views
14

me sale esto cuando quiero volver a compilar xmonad para cambiar la configuración:nombre del módulo ambiguo 'Preludio'

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

xmonad se instaló a través de pacman. Cuando obtuve este error, eliminé xmonad de pacman y luego intenté instalar cabalmente xmonad. Obtuve el error anterior pero pude resolverlo eliminando haskell98 del archivo cabal.

Ahora quiero reconfigurar xmonad con MOD-Q, el error reaparece y no tengo ni idea de cómo solucionarlo. Cualquier ayuda apreciada.

utilizo GHC versión 7.0.3 (de plataforma Haskell)

Respuesta

15

Prueba esto:

ghc-pkg hide haskell98 
+0

Sí, sólo lograron conseguir que funcione con los comandos siguientes: 'cd ~/.xmonad GHC xmonad.hs haskell98 -hide paquete mv xmonad-x86_64-linux xmonad-x86_64-linux.good mv xmonad xmonad-x86_64-linux' Luego reinicié mi computadora (reiniciar X probablemente sería suficiente). Ahora necesito automatizar esto de alguna manera. También necesito aprender a formatear los comentarios. – somesoaccount

+0

Acabo de notar que mencionaste ghc-pkg. Lo intenté antes y no funcionó. – somesoaccount

+0

Ok, estoy confundido. Yo _pensé_ intenté su sugerencia antes, pero aparentemente no lo hice. ¡Tu solución funciona como un encanto! – somesoaccount

2

En mi caso ocultando haskell98 por desgracia no era suficiente, tenía que quitar el haskell98 obsoleta de la acumulación lista de dependencias en mi archivo de compilación .cabal (manteniendo la base> = 4 por supuesto). Se leen antes:

build-depends: 
    base >= 4, 
    haskell98 

... y luego ...

build-depends: 
    base >= 4 

Con que el mensaje de error "ambiguo nombre de módulo` Preludio '" por encima desaparecido.

+0

Cuando lo hice, obtuve 'Could not find module' System'' –

1

ver este GHC bug ticket sobre el mismo tema:

GHC partir de la versión 7.2.1, no se admite el uso del paquete haskell98 y el paquete base al mismo tiempo. El paquete haskell-src tiene ambos en su build-depends, por lo que tendrá que ser modificado. La mayoría de las veces, lo que desea hacer es eliminar haskell98 de build-depends, y corregir cualquier importación de módulos Haskell 98 a punto a sus equivalentes básicos.

El billete error se cerró (sin fijar), y el creador de la entrada respondió:

Sí, la eliminación de haskell98 de archivo .cabal parece haber fijado - es compiló sin errores. Parece que no tiene ninguna importación a haskell98, porque según el comentario en el archivo .cabal.

Cuestiones relacionadas