Some features:
- Optional GC with per-type granularity
- Trying to wedge uniqueness[1] into the type system too
- Can compile statically, extremely convenient C FFI
- Codifying the environment/context that a function wants/needs. E.g. a function "void render3DScene(void)" might spec its env requirements as {OpenGLContext, NonBlocking, SceneGraphState}. Similar to state monads, but intuitive, composable, and not anal.
I've been quite fascinated by ASTs (and verification thereof) ever since poking around Python's approach to it.
So the versioning is still vapor. Thing is, once you've done the structures correctly (i.e. copied git) the versioning just falls right out. The whole project really started off as a logical extrapolation of git's data structures.
I don't have a dev log at all, sorry. It would be good to get my insights down on paper.
Probably you already know about it, but have a look at papers aboht the tree edit/tree distance problem:
http://scholar.google.nl/scholar?q=tree+edit+problem&hl=...
It's exactly what you would need to store versioned trees such as AST's.