{ lib, inputs, ... }: let inherit (builtins) attrNames filter readDir; dirs = let files = readDir ./.; in filter (name: files."${name}" == "directory") (attrNames files); util = import ./util.nix; in lib.composeManyExtensions (map (dir: import ./${dir} { util = util dir; inherit inputs; }) dirs)