definition and tests for rings
eliminated the concept of 'signatre', as it didn't seem to be doing anything useful
refactored utility methods for creating unary/binary operators on sets