More work in the master branch of Vicare. I have bumped the version number
of the library (vicare) to (0 4 2016 9 4).
More errors emerged in the implementation of recursive types, I think I fixed them. However, testing continues: I am porting some old libraries from the Nausicaa hierarchy to the typed language.
Everything I discuss here is relative to code in the head of the master branch.
When defining a new data type, disjoint from all the other types, we should really
use record–types; the use of structs should be limited to special cases. Structs
have no inheritance and there is really little difference between a record–type with
no parent and a struct–type. For this reason I created the library (vicare
system structs), which exports the syntactic bindings related to structs in place of
(vicare).
Other libraries now exist to export syntactic bindings that are used internally but
should no be used directly by normal user code. For example (vicare system
comparison-procedures) and (vicare system type-descriptors). More such
libraries will come into existence in future, to partition the big number of
syntactic bindings exported today by (vicare).