{ foldl, hasAttr, isAttrs, isList, mergeAttrsWithFunc, unique, ... }: { inherit (import ../../inputs/lib.nix) recursiveUpdateList; throws = x: !(builtins.tryEval x).success; hasVersion = x: isAttrs x && hasAttr "version" x; mergeAttrsList = list: foldl (mergeAttrsWithFunc (a: b: if isList a && isList b then unique (a ++ b) else b)) {} list; }