{ inputs, lib, ...}: let inherit (lib) makeExtensible attrValues foldr; inherit (modules) mapModules; modules = import ./modules.nix { inherit lib; self.lib.attrs = import ./attrs.nix { inherit lib; self = { }; }; }; mylib = makeExtensible (self: mapModules ./. (file: import file ({ inherit lib; } // inputs))); in mylib.extend (self: super: foldr (a: b: a//b) { } (attrValues super))