Fixed a couple of errors which would lead to infinite recursion, and fixed the contract invariant decorator to return the correct result.  The first problem causing infinite recursion was that the attribute accessor for 'evaluating_contract' and 'evaluate_contract' themselves were getting the class invariant added to them.  The second issue was that the reference to 'evaluating_contract' wasn't referencing the correct object.  Changing it to reference 'self' solved this issue.
Fixed a couple of errors which would lead to infinite recursion, and fixed the contract invariant decorator to return the correct result.  The first problem causing infinite recursion was that the attribute accessor for 'evaluating_contract' and 'evaluate_contract' themselves were getting the class invariant added to them.  The second issue was that the reference to 'evaluating_contract' wasn't referencing the correct object.  Changing it to reference 'self' solved this issue.

isupeene/sparse-matrix