As a search of the Tcl wiki shows, attempts to add named-argument capability to the Tcl <i>proc</i> command have been around for several years.<p>My own <i>nxproc</i> extension is more comprehensive. (See wiki [0].)<p>The extension enables named arguments, regular positional arguments, and 'rest' arguments, <i>nxargs</i> and <i>nxunknown</i>. <i>Nxproc</i> also provides (optional) type-checking of procedure arguments. (Types: string, number, bool and enumerated. Enums are lists of values restricting what the arg can contain.)<p><i>Nxproc</i> supports TclOO with <i>nxcontructor</i> and <i>nxmethod</i> commands -- same feature set as "plain" <i>nxproc</i>. Also provides case-insensitive '-ci' variants, and runtime display of named-argument default/actual values and types.<p><i>Nxproc</i> is a Tcl C extension. Bundle has Windows, Linux binaries. Compiles easily on other platforms.<p>[0] <a href="https://wiki.tcl-lang.org/page/nxproc" rel="nofollow">https://wiki.tcl-lang.org/page/nxproc</a>