anchor.diff:    # Map and concatenate the result.
     concatMap = f: list: concatLists (map f list);
   
  +  concatMapStrings = f: list: concatStrings (map f list);
  +  
   
     # Place an element between each element of a list, e.g.,
     # `intersperse "," ["a" "b" "c"]' returns ["a" "," "b" "," "c"].
  
positive.code:   # returns atribute values as a list 
    flattenAttrs = set : map ( attr : builtins.getAttr attr set) (attrNames set);
    mapIf = cond : f :  fold ( x : l : if (cond x) then [(f x)] ++ l else l) [];
  
  # Marc 2nd proposal: (not everything has been tested in detail yet..)
  
  
negative.code:       then getAttr (tail attrPath) default (builtins.getAttr attr e)
        else default;
  
    # shortcut for getAttr ["name"] default attrs
    maybeAttr = name: default: attrs:
      if (__hasAttr name attrs) then (__getAttr name attrs) else default;
  
  
    # Filter a list using a predicate; that is, return a list containing
    # every element from `list' for which `pred' returns true.
  