Supongo que ha definido una función principal en su archivo fuente.
Si ha definido una función main
, cargar el módulo con :l test
no importará ninguna función excepto main
. En ese caso, puede cargarlo anteponiendo un asterisco al nombre del módulo: :l *test
. La razón es que el binario compilado ocultará las funciones de nivel superior no exportadas. El anteponer un asterisco fuerza a GHCi a ignorar el módulo precompilado (prueba) e interpretar el archivo fuente en su lugar (test.hs).
[jkramer/sgi5k:.../haskell]# cat test.hs
main = do
print $ doubleMe 2
doubleMe x = x + x
[jkramer/sgi5k:.../haskell]# ghc --make test
[jkramer/sgi5k:.../haskell]# ghci
[...some messages...]
>> :l test
Ok, modules loaded: Main.
>> :t doubleMe
<interactive>:1:0: Not in scope: `doubleMe'
>> :l *test
[1 of 1] Compiling Main (test.hs, interpreted)
Ok, modules loaded: Main.
>> :t doubleMe
doubleMe :: (Num a) => a -> a
comprobar estos enlaces para más información:
http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/ghci-compiled.html http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/interactive-evaluation.html#ghci-scope
Había creado una carpeta en el escritorio en lugar de un acceso directo a una carpeta. –