I have written a small overview, how mutually recursive modules are currently supported and how they can be avoided: http://haskell.org/haskellwiki/Mutually_recursive_modules Please add information about other compilers and more ideas on breaking cycles.