   (class_mixer, object_refinement, comps)->
     ref = object_refinement.build()
 
-
     buildIsEqual = (for_type)->
       (other)->
         if other instanceof for_type
-          @_simpleIsEqual(other)
+          if @_simpleIsEqual
+            @_simpleIsEqual(other)
+          else
+            true
         else if other instanceof comps.expression
           ref.refine(other).isEqual @
         else

    })

    ref.forType(comps.addition, {
      isEqual: (buildIsEqual(comps.addition)),
      _simpleIsEqual: (other)-> true # two additions are always equal to one another
      })

    class ExpressionEquality
      initialize: (@first)->

        firstp = ref.refine @first
        firstp.isEqual @second

    class_mixer ExpressionEquality

    ExpressionEquality.isEqual = (a,b)->
