Usually I put my modules in one directory tree and run ghciin the root directory of the tree. Then the modules can import each other, and I can easily :loadmodules in ghciinteractively.
$ ghci
.... loading ....
Prelude> :load directory/subdirectory/mymodule.hs
source
share