 
 
 
 
 
 
 
  
Symbolic constants may be declared by including them in a type declaration, such as,
        x : {ready, willing, able};
The three symbols ready, willing and able are treated
as distinct constants, which are also distinct from all the integers.
A given symbolic constant may not appear in two different types. For
example,
        x : {foo, bar, baz};
        y : {red, green, foo};
is illegal, since foo appears in two distinct types. This restriction
is made so that programs may be type checked.