{ lib, ... }: { options.submodule = lib.mkOption { type = lib.types.submoduleWith { modules = [ ({ lib, ... }: { options.foo = lib.mkOption { default = lib.foo; }; }) ]; specialArgs.lib = lib // { foo = "foo"; }; }; default = {}; }; }