···222222223223#### Parameterized Providers
224224225225-Providers can be implemented as curried functions, allowing you to create parameterized modules. All arguments must be explicitly named. This is useful for creating reusable configurations that can be customized at the inclusion site.
225225+Providers can be implemented as curried functions, allowing you to create parameterized modules. This is useful for creating reusable configurations that can be customized at the inclusion site.
226226227227-For a real-world example, see how `vic/den` [defines](https://github.com/vic/den/blob/main/nix/aspects.nix) `flake.aspects.default.host` and its [usage](https://github.com/vic/den/blob/main/templates/default/modules/_example/aspects.nix).
227227+For real-world examples, see how `vic/den` defines [auto-imports](https://github.com/vic/den/blob/main/modules/aspects/batteries/import-tree.nix) and [home-managed](https://github.com/vic/den/blob/main/modules/aspects/batteries/home-managed.nix) parametric aspects.
228228229229```nix
230230flake.aspects = { aspects, ... }: {
231231 system = {
232232 nixos.system.stateVersion = "25.11";
233233- provides.user = { userName }: { aspect-chain, class }: {
233233+ provides.user = userName: {
234234 darwin.system.primaryUser = userName;
235235 nixos.users.${userName}.isNormalUser = true;
236236 };
···238238239239 home-server.includes = [
240240 aspects.system
241241- (aspects.system.provides.user { userName = "bob"; })
241241+ (aspects.system.provides.user "bob")
242242 ];
243243}
244244```