anchor.diff:          let
             isRepeated = newAttrs ? __type && newAttrs.__type == "repeated";
           in {
  -            names = attrs.names ++
  -              (if isRepeated then newAttrs.names else attrNames newAttrs);
  -
  -            values = attrs.values ++
  -              (if isRepeated then newAttrs.values else attrValues newAttrs);
  +            values = attrs.values ++ (if isRepeated then newAttrs.values else
  +              map (name: { inherit name; value = getAttr name newAttrs; })
  +              (attrNames newAttrs));
             };
  -    in (foldl op { names = []; values = []; } configs) //
  -      { __type = "repeated"; };
  +    in (foldl op { values = []; } configs) // { __type = "repeated"; };
   
   in
   
  
positive.code:       if isFloat expr then expr.value else
        if isList expr then listToConfig expr else
        if isHash expr then hashToConfig expr.value else
        if isRepeatedAttrs expr then repeatedAttrsToConfig expr.names expr.values
        else attrsToConfig expr;
  
    mergeConfigs = configs:
  
negative.code:       ''
        else "${name} => ${exprToConfig value}";
  
    repeatedAttrsToConfig = values:
        concatStringsSep "\n" (map valueToConfig values);
  
    attrsToConfig = attrs:
      let
        attrToConfig = name: valueToConfig {
          inherit name;
          value = (getAttr name attrs);
        };
      in
        concatStringsSep "\n" (map attrToConfig (attrNames attrs));
  
  