{ config, lib, ... }: { _file = "optionTypeFile.nix"; options.theType = lib.mkOption { type = lib.types.optionType; }; options.theOption = lib.mkOption { type = config.theType; default = {}; }; config.theType = lib.mkMerge [ (lib.types.submodule { options.nested = lib.mkOption { type = lib.types.int; }; }) (lib.types.submodule { _file = "other.nix"; options.nested = lib.mkOption { type = lib.types.str; }; }) ]; }