anchor.diff:    mapRecordFlatten = f : r : map (attr: f attr (builtins.getAttr attr r) ) (attrNames r);
   
     # to be used with listToAttrs (_a_ttribute _v_alue)
  +  # TODO should be renamed to nv because niksnut has renamed the attribute attr to name
     av = name : value : { inherit name value; };
     # attribute set containing one attribute
  -  avs = attr : value : listToAttrs [ (av attr value) ];
  +  avs = name : value : listToAttrs [ (av name value) ];
     # adds / replaces an attribute of an attribute set
  -  setAttr = set : attr : v : set // (avs attr v);
  +  setAttr = set : name : v : set // (avs name v);
   
     id = x : x;
     # true if all/ at least one element(s) satisfy f
  
positive.code:   # "y"] applied to some set e returns e.x.y, if it exists.  The
    # default value is returned otherwise.
    # comment: I'd rename this to getAttrRec or something like that .. (has the same name as builtin.getAttr) - Marc Weber
    getAttr = attrPath: default: e:
      let {
        attr = head attrPath;
        body =
  
negative.code:     else [(head list) separator]
           ++ (intersperse separator (tail list));
  
    toList = x : if (__isList x) then x else [x];
  
    concatStringsSep = separator: list:
      concatStrings (intersperse separator list);
  