First the user creates an Algebra that contains information about the algebraic relations between the various directions. Directions are described as integers, starting from zero.
This is done by firstly adding the directions, or branches to a particular level of the description Add(branch, level) . If any directions have inverses, these are then described AddInv(branch) . If a pair of direction commute, this is described using the AddComm(pair of branches) . As an example a `tree of 2D meshes' would be created using the code in fig. 5.1