The ChaosEngine isn't just another Game Library, it's a system that extends the concept of objects and says, "Hey why not allow a person to plug them in on the top OR the bottom as long as the interfaces allow it?" In a high level sense you're playing with blocks.
In a low-level sense, macros are every programmers dream and after spending many an evening with a good friend now gone Microsoft, we both agreed that it's very doable to create a language where you can literally drop in low-level assemblies (C#'like) and incorporate elements that are otherwise seen as too high level in to the keyword set of this "language-on-the-fly" system.
Just think Python, Lua, or any of the other scripting languages and attempt to distinguish them from C or Java. Now what makes them different? Python builds in data types for lists. C uses lists it just gives you more ROOM to look over how that list is being made. The _difference_ is primarily in given level of control, implementation, and extends to lexical constructs.
I like to think of the ChaosEngine as a symbol-independent programming language with a highly flexible object model capable of moving derived blocks to new base-blocks and vice versa without the imposed limitation of top-down hierarchy (due to the `is a-has a' relationship ). After all coding is more often than just the process of figuring out how to insert something in between two generic objects is it not? :)
With the added benefit of also being a collection of many blocks and many different symbol sets readily available to make coding as simple as BASIC or Python for the testing of ideas and having the ability scale down the functionality to achieve assembly like speed.
Impossible you say? Only if I don't work on it :)