anchor.diff:    catAttrs = attr : l : fold ( s : l : if (__hasAttr attr s) then [(__getAttr attr s)] ++ l else l) [] l;
   
     flattenSet = set : map ( attr : __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..)
   # One example showing how to use mandatory dependencies [1], default flags [2], ..
  
positive.code:     #    alternativeAddOn  = { cfgOption = "--enable-add-ons-alt"; blocks = ["addOns", "addOns2"]; };
      #    justAOption =  { };
      #  };
      #  co = chosenOptions flagDescr args args.flags;
  
      #in args.stdenv.mkDerivation {
  
  
negative.code:     if list == []
      then nul
      else op (head list) (fold op nul (tail list));
      
    # Concatenate a list of lists.
    concatLists =
  