Symbols of ADT oeprations
All Symbol ADT operations are implemented in Symbol class, except toSymbol(), which is implemented in classes (like String) which can generate a Symbol instance. When a result is undefined in the ADT, result of the corresponding Symbol class method is nil. names are sometimes different, following Ruby conventions; for instance, toString() in the ADT becomes to_s() in Ruby, and charAt() in ADT is []() in Ruby.