   func addConstraintsConsumingTo(v: Variable, inout coll: [Constraint]) {
     if let determining = v.determinedBy {
       for constraint in v.constraints {
-        if constraint != determining && constraint.isSatisfied {
+        if constraint !== determining && constraint.isSatisfied {
           coll.append(constraint)
         }
       }


      if let determining = v.determinedBy {
        for next in v.constraints {
          if next != determining && next.isSatisfied {
            next.recalculate()
            todo.append(next.output)
          }


  // Removes all traces of c from this variable.
  func removeConstraint(constraint: Constraint) {
    constraints = constraints.filter({ $0 !== constraint })
    if let c = determinedBy {
      if (c === constraint) {
        determinedBy = nil
      }
    }
