{ lib }: # Operations on attribute sets. rec { filterAttrs = pred: set: listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [ (nameValuePair name v) ] else [ ]) (attrNames set)); inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor; }