Documentation and minor tweaks.

Apart foromdocumenting the architecture, the structure of the
Expression type has been modified to make it more uniform.