Thanks Peter for showing these options. In both cases, however, the modules themselves wouldn't be able to share types, for example. I could think of a "physical" separation of a module's code like so:
src |_ moduleName.model.elm |_ moduleName.view.elm |_ moduleName.update.elm Where I define type aliases and types in "moduleName.model.elm" and where I can access those in the other files (given that they all are part of the same module). Maybe I'm missing something? On Friday, July 8, 2016 at 11:03:23 AM UTC+2, Peter Damoc wrote: > > If you want you can break a module into multiple files and offer a unified > interface. > > I can think of two ways to do this. > > 1. with folders, where you push all the module files into its own folder > and add that folder to the "source-directories" in elm-package.json. > 2. with prefixing/suffixing in file names / module names. > > In both cases the pattern is the same, you create aliases: > > module ModuleName exposing (first, second, third) > > import ModuleName.First > import ModuleName.Second > import ModuleName.Third > > first = ModuleName.First.first > > second = ModuleName.Second.second > > third = ModuleName.Third.third > > > If it helps, you can think about the actual ModuleName as playing the role > of __init__.py in a python module. ;) > > > > On Fri, Jul 8, 2016 at 11:48 AM, Robert Walter <[email protected] > <javascript:>> wrote: > >> Hello, >> >> as far as I can tell, it is a requirement that a module names matches its >> file name, which means that one cannot split a module into several files, >> correct? >> I'm curious about the rational behind it? Is it "just" so that the >> compiler has an easier time resolving imports or are there other reasons as >> well? >> >> One could argue that it forces users to keep things that belong together >> logically also physically together and that it encourages you to keep >> modules small. On the other hand, message communication between modules >> seems to be a bit unwieldy which makes me hesitant to create too big of a >> module hierarchy. From a beginner's point of view, I like the idea of >> "partial module" declarations, but I can imagine that there are good >> reasons against that. >> >> best, >> Robert >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Elm Discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > There is NO FATE, we are the creators. > blog: http://damoc.ro/ > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
