
Haskell is a fantastic language for refactoring, but I find the module system gets in the way when I need to reorganize my files or am trying to use git submodules. My problem is that each module needs to "know where it is" relative to the global source paths in the cabal file. For example, if you have an import statement like ``` module Main where import SomeDirectory.SomeModule ``` the file SomeModule.hs must "know" that it is in a subdirectory as it is called because its name must have the "SomeDirectory" path as a prefix: module SomeDirectory.SomeModule where ... this would not work module SomeModule where ... To avoid having to add the SomeDirectory prefix, I end up putting *all* directories in the .cabal file. Question: Why does GHC require an exact match between the modulename and the complete path? Is there a way to relax this? Thanks, Dimitri