On Mon, 19 Mar 2007, Chris Kuklewicz wrote: > I used a "Types" module for most of the types in the all haskell regex-* > backends I wrote. Doing anything else tended to lead to cycles, like Rob > mentioned. > > This seems to be a result of "module/import" being the one-true-and-unique-way > to create a namespace combined with almost no support for recursive modules. > > Thus data types that (indirectly) refer to each other must be in the same > namespace. Thus one cannot even have a "all data types go in separate > modules" > policy. > > As I write the above, I wonder: if a new variant of "module" that only defines > data constructors and types could be created then could compilers support > these > if they have mutual recursive imports/references?
If I remember correctly, Oberon has one file per module and allows recursive modules. The identifiers to be exported are marked with a '*' on declaration. Interface files are automatically generated from these module files. (And Oberon programmers do not need to maintain export lists.) _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe