For the moment, I've been essentially converting Elm's core libraries into a single Purescript library (though, of course, with multiple modules). So, if I continued this way, one would eventually install the whole thing at once.
This is, of course, convenient, because it means I can build & test the whole thing together. However, it might be a bit large for a single library -- certainly, the Purescript idiom seems to be much smaller libraries, on the whole. Yet, it would also seem cumbersome to make each module a separate library.
One option might be to divide the whole thing into three or four libraries ... possibly with a base library that depends on all of them, so you can easily install them all if you like. The three or four libraries might look like this:
purescript-elm-compat ... for modules like Elm.Maybe, Elm.Result, etc. that are only of any interest for Elm compatibility purposes ... no one without legacy Elm code could possibly be interested.
purescript-int53 ... for a module like Elm.Int53 which is actually general-purpose ... it doesn't depend on anything else in Elm, and could be of interest to any Purescript developer. And, I suppose I should rename the module to Data.Int53, since it doesn't really need the Elm namespace.
purescript-elm-graphics ... for Elm.Graphics.Element, Elm.Graphics.Collage etc. Now that I'm working on these, I can see that they could conceivably be of some interest to any Purescript developer -- they need not be tightly-linked to the rest of Elm.
purescript-elm-main ... for the code (that I mostly haven't written yet) that binds together things like Signals, Tasks and the Graphics modules so that you can easily port the main module in a typical Elm application.
purescript-elm-signals ... for Elm.Signal and friends, since they are conceivably of some interest even if you're not using an Elm-style main.
At least, that's one approximation of how things could be divided up -- it will need a little more thought.
The other question is where to put some of the other things (outside Elm's core) which I'll need to port. For instance, elm-html, and probably some other essential Elm libraries. Perhaps purescript-elm-essentials?
For the moment, I've been essentially converting Elm's core libraries into a single Purescript library (though, of course, with multiple modules). So, if I continued this way, one would eventually install the whole thing at once.
This is, of course, convenient, because it means I can build & test the whole thing together. However, it might be a bit large for a single library -- certainly, the Purescript idiom seems to be much smaller libraries, on the whole. Yet, it would also seem cumbersome to make each module a separate library.
One option might be to divide the whole thing into three or four libraries ... possibly with a base library that depends on all of them, so you can easily install them all if you like. The three or four libraries might look like this:
Elm.Maybe
,Elm.Result
, etc. that are only of any interest for Elm compatibility purposes ... no one without legacy Elm code could possibly be interested.Elm.Int53
which is actually general-purpose ... it doesn't depend on anything else in Elm, and could be of interest to any Purescript developer. And, I suppose I should rename the module toData.Int53
, since it doesn't really need theElm
namespace.main
module in a typical Elm application.main
.At least, that's one approximation of how things could be divided up -- it will need a little more thought.
The other question is where to put some of the other things (outside Elm's core) which I'll need to port. For instance, elm-html, and probably some other essential Elm libraries. Perhaps purescript-elm-essentials?