Loyc.Essentials is about 250 KB, a little fatter than I'd like. I think there should be an assembly dedicated to interfaces, and to very small but essential types such as small structs that the interfaces rely on (e.g. Symbol), so people don't need to bring in a somewhat fat reference just to use interfaces. The interface library should contain virtually all interfaces, including a couple that remain in other libraries (notably ILNode in Loyc.Syntax, but not IToLNode or IMacroContext which depend on the real LNode).
Also, which parts of Loyc.Essentials are really essential? Perhaps DList should move to Loyc.Collections, for example. And as I mentioned in #100, with tweaks to Loyc.Syntax I expect to be able to drop the dependency on Loyc.Collections.
I'd like to bundle this change with #100 and various other changes already completed in the breaking-changes-2.7 branch, and then do a release.
CC @jonathanvdc - if you suspect any APIs should be renamed, now is the time to speak!
Loyc.Essentials is about 250 KB, a little fatter than I'd like. I think there should be an assembly dedicated to interfaces, and to very small but essential types such as small structs that the interfaces rely on (e.g.
Symbol
), so people don't need to bring in a somewhat fat reference just to use interfaces. The interface library should contain virtually all interfaces, including a couple that remain in other libraries (notablyILNode
in Loyc.Syntax, but notIToLNode
orIMacroContext
which depend on the realLNode
).Also, which parts of Loyc.Essentials are really essential? Perhaps DList should move to Loyc.Collections, for example. And as I mentioned in #100, with tweaks to Loyc.Syntax I expect to be able to drop the dependency on Loyc.Collections.
I'd like to bundle this change with #100 and various other changes already completed in the breaking-changes-2.7 branch, and then do a release.
CC @jonathanvdc - if you suspect any APIs should be renamed, now is the time to speak!