Si desea que los módulos sean accesibles desde unos pocos proyectos diferentes, lo recomiendo para crear un paquete de Cabal para ellos e instalarlo utilizando cabal install
. No es necesario publicar en hackage: cabal install
sin argumentos busca el archivo .cabal
en el directorio actual e instala el paquete correspondiente.
Si desea que sus módulos sean accesibles desde un único proyecto, la práctica habitual de organizar sus fuentes en un árbol de carpetas jerárquicas se aplica también a Haskell. Déjame mostrarte un ejemplo:
Hello/World.hs
Foo/Bar.hs
Quux.hs
Hello.hs
Hello/World.hs
debe tener module Hello.World where
en la cabecera. El módulo principal debe tener module Main
, pero el nombre real del archivo puede ser cualquier cosa (por ejemplo, Quux.hs
). En Foo/Bar.hs
puede usar import Hello.World
. Cuando carga Foo/Bar.hs
en ghci
, el directorio actual debe ser la raíz de su árbol, de lo contrario no encontrará Hello.World. Puede pasar nombres de módulo en lugar de nombres de archivo a ghci: p. ghci Hello.World funcionará.
Éstos son la documentación:
http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html
http://haskell.org/ghc/docs/latest/html/users_guide/packages.html
En la nube ... otra mala broma> –