
This post introduces the "canonical storage principle" of the "arrows space".
First of all, I'd like to underline the fact some of the ideas related to the "Entrelac System" were freely inspired/reinforced by a very well done proposal by Brian T Rice: "The Arrow System Philosophy", that I have read many times. See record there: http://citeseer.comp.nus.edu.sg/314744.html ; I won't dare comment this paper. Please make an opinion by yourself.
I've tried few times to get in contact with Mr Rice, but there were obvious differences in our both approaches that I've failed to explain him.
As far as I understood, the "Arrow System" doesn't deal with morphism and graph reduction. The theory and the prototype doesn't explain how 2 arrows may be equal, nor how to store efficiently incoming arrows.
As for me, arrows may build a really non-redundant system of digital knowledge. That is a system where one mathematically definable arrow will never be stored at more than one location.
For example, considering the arrow which links precisely some known arrow A to some other arrow B, Entrelac says it is unique so it has to be represented only once. By extension, some atom like "42" is stored only once in the whole system as well.
The necessary condition is that all these constructs to be immutable. As long as one thing is stored, you can't change it.
A thing may be related to a lot of other things in various contexts. So any change in place for the interest of a particular context would break all the other contexts.
The system knowledge seen as a whole is consequently immutable as well.
Actually, the system evolves at each system iteration by plugging and unplugging arrows from a root context. The root context ownership simply corresponds to a dedicated bit inside arrows definition.
There is chance most arrows which compose the new plugged arrows already exist and are reused. But there may be some arrows which were formerly referred by unplugged arrows and not referred any more by any still plugged arrow. Such lost arrows are recyclable by some "Garbage Collector".
Immutable and canonical storage might look hard to design, but thanks to the "all is arrow" paradigm, most related algorithms (incremental garbage collector, memory levels management) are simpler because they only deal with arrows.
Moreover, benefits are great. It allows for example "auto-indexation". It means the "arrow space" is made in such a way that any arrow leads to a sort of index which immediately points to all its child arrows. You can very concretely choose any world or number stored in the system and find every context it is used in very quickly.