recursive modules in Haskell