anchor.diff:    /// assuming properties are pure computations. i.e. dealing with De Morgan's
     /// laws https://en.wikipedia.org/wiki/De_Morgan%27s_laws
     LinkedHashSet<ContradictoryComparisons> _findContradictoryComparisons(
  -      HashSet<Expression> comparisons, TokenType tokenType) {
  +      Set<Expression> comparisons, TokenType tokenType) {
       final Iterable<Expression> binaryExpressions =
           comparisons.where((e) => e is BinaryExpression).toSet();
       LinkedHashSet<ContradictoryComparisons> contradictions =
  
positive.code:   }
  }
  
  HashSet<Expression> _extractComparisons(BinaryExpression node) {
    final HashSet<Expression> comparisons = new HashSet<Expression>.identity();
    if (_isComparison(node)) {
      comparisons.add(node);
    }
  
negative.code:             : TokenType.AMPERSAND_AMPERSAND);
  
      if (_contradictions.isEmpty) {
        Set<Expression> set = (binaryExpression != null
            ? _extractComparisons(testingExpression)
            : [testingExpression].toSet())
          ..addAll(truths)
  