anchor.diff:    }
   
     @override
  -  String toString() => rules.join('\n');
  +  String toString() =>
  +      rules.values.map((rules) => rules.join('\n')).join('\n\n');
   }
   
   class Rule {
  
positive.code:   }
  
    @override
    Node substitute(Map<Variable, Node> bindings) => this;
  
    @override
    bool operator ==(Object other) => other is Value && name == other.name;
  
negative.code:   if (first == null || second == null) {
      return null;
    }
    final result = newBindings();
    result.addAll(first);
    for (final key in second.keys) {
      final value = second[key];
  