An operation is simply an operation that may be done upon elements, such as addition and comparison.
| typedef unsigned char Hash | Hash | 
| ~Oper () | ~Oper | 
[virtual]
| unsigned  arity () | arity | 
[const pure virtual]
Returns: number of arguments operation takes
| string  str () | str | 
[const pure virtual]
Must be unique.
Returns: string representation of operation.
| Hash  hash () | hash | 
[const pure virtual]
| void  set_hash (const Hash&) | set_hash | 
[const pure virtual]