{ lib, ... }: let inherit (lib) types; in { options = { int = lib.mkOption { type = types.lazyAttrsOf types.int; }; list = lib.mkOption { type = types.lazyAttrsOf (types.listOf types.int); }; nonEmptyList = lib.mkOption { type = types.lazyAttrsOf (types.nonEmptyListOf types.int); }; attrs = lib.mkOption { type = types.lazyAttrsOf (types.attrsOf types.int); }; null = lib.mkOption { type = types.lazyAttrsOf (types.nullOr types.int); }; submodule = lib.mkOption { type = types.lazyAttrsOf (types.submodule {}); }; }; config = { int.a = lib.mkIf false null; list.a = lib.mkIf false null; nonEmptyList.a = lib.mkIf false null; attrs.a = lib.mkIf false null; null.a = lib.mkIf false null; submodule.a = lib.mkIf false null; }; }