-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[New topic] Modules #8
Comments
I covered this briefly in learn-haskell-blog-generator: |
@soupi thanks, these are nice explanations, they will come in handy! Besides giving extra control to the library consumer, I also found Internal modules to be the only way to test inner workings of a module. |
Haskell school will have a section on module: haskellfoundation/HaskellSchool#28 |
Thanks! They seem to be focusing on basic workings of modules -> I instead hope to focus on organizing them from the higher level and using Internal as a mechanism. |
I started some work here https://github.com/wasp-lang/haskell-handbook/blob/master/module-tree-api.md . |
In that case, I've covered internal modules in the book, and Gabriella suggests one way to organize modules (which is a bit different than what I've seen in many places, but definitely good general advice). |
Aha I haven't noticed you covered that in your book, that is great! Some thoughts:
|
Regarding vertical vs horizontal -> I also prefer vertical approach, as Gabriella suggests. I figured that out for the first time while working on AngularJS projects some time ago and have stuck with it since then. I usually call that "feature-based" organization vs "type-based" organization, based on this article: https://johnpapa.net/angular-growth-structure/ . |
When separating to public and private modules one issue that can crop up is cyclic dependencies - it's reasonable for public to depend on private, but the other way around is also likely. Especially for things like data type definitions. |
The text was updated successfully, but these errors were encountered: