Kaleb Amarante
Kaleb Amarante

Reputation: 73

Why can't the ghci find the hs file that I am trying to compile?

I'm learning Haskell for the first time and I can't see to understand why the ghci can't find the file I'm trying to compile. Especially since, I saved the file. This is my file,

import System.IO


trueAndFalse = True && False 

Now this is what I ran in the compiler,


<no location info>: error: can't find file: tut-1.hs
Failed, no modules loaded. 

Upvotes: 1

Views: 3822

Answers (1)

Daniel Wagner
Daniel Wagner

Reputation: 152682

The "Failed, no modules loaded." makes me think you're talking about ghci. If so, you can find out where ghci is looking for files with :show paths. Here's what it looks like when I try:

> :show paths
current working directory: 
  /home/<my username>
module import search paths:
  .

The module import search paths tells you what directories it's looking in. A lone . in that list refers to the current working directory. So, for me, if I wanted a file to be easily accessible from that ghci instance, I would have to save it in /home/<my username>.

Of course there are ways of changing all of these pieces -- which paths are in the import search path, which directory is the current working directory, and so forth -- but this should get you going for simple usage.

And, by the way, a note on terminology: the GHC tool suite comes with both a compiler and an interpreter. The compiler's executable is ghc, and the interpreter's executable is ghci. Knowing about that distinction may help you avoid confusion in future conversations!

Upvotes: 3

Related Questions