flake: { ... }@inputs: { group, ... }@imports: let group' = name: snippets: { pkgs, lib, options, config, ... }@args: let invoke = x: if builtins.isFunction x then x args else x; in { options.fbs42.group.${name} = lib.mkEnableOption name; config.users.groups.${name} = lib.mkIf (config.fbs42.group.${name} || builtins.any (usr: usr.group == name) (builtins.attrValues config.users.users)) (lib.mkMerge (map invoke snippets)); }; in builtins.mapAttrs group' group