Module structure revision
The module structure is a bit convoluted at the moment. Here are a few rough ideas for improving it.
- Registering a library in
package.yml
and makingMain
an executable in a separate directory that depends on the library (which might help with documentation generation too) - Splitting
Types
into smaller pieces likeTypes.Player
,Types.InstanceState
etc. (cf. this thread). - Streamlining the page modules
-
Page.Something
instead ofSomethingPage
- maybe even
Page.Instance.Something
for instance pages (and matching up the hierarchy with that of thetemplates
directory) - getting rid of the
Modify
prefixes
-
- "Flattening"
Interfaces.Web
into one prefix, maybe even getting rid of it completely after putting all of its contents under thePage
prefix - A
Computation
module containingAlgorithms.MILP
andCore.Computation*
on the top level or underCore
- A
Websockets
/Broadcast
module with appropriate stuff fromCore
on the top level (? -- I think it would make sense if the websocket namespace were a sibling of the page namespace) - Or maybe a top level distribution like this:
-
Backend
:Computation
&AutoDeactivate
-
Frontend
:Page
andWebsockets
-
Monad
: everything fromCore.Monad
-
Edited by Aras Ergus