@@ 362,6 362,60 @@ or empty, the key is serialized alone, with no equals sign.
Errors if `key` includes forbidden characters.
+## `irc::src `*`subcommand ?arg ...?`*
+
+IRC source parsing and generation utility.
+
+### `irc::src parse `*`src ?partsVar?`*
+
+Parses `src` and returns either `server` or `user`, indicating the
+type of `src`. If `partsVar` is specified, it will be set to a dict
+containing, for `user` values of `src`, the `nick`, `username`, and
+`host` segments as entries, and for `server` values, the `servername`
+segment as an entry.
+
+Errors if `src` is not a valid IRC source string.
+
+### `irc::src server `*`servername`*
+
+Returns an IRC server source with `servername` as its component.
+
+Errors if `servername` is not a valid servername.
+
+### `irc::src user `*`?-user user? ?-host host? nick`
+
+Returns an IRC user source with `nick` as the nickname component. If
+`-user` is specified, the `user` field will be inserted. If `-host` is
+specified, the `host` field will be inserted.
+
+Errors if any argument is invalid for its role.
+
+
+## `irc::msg `*`subcommand ?arg ...?`*
+
+IRC message formatting and parsing utility.
+
+### `irc::msg fmt `*`?-tags tags? ?-src src? cmd ?arg ...?`*
+
+Returns an IRC message string with `cmd` as the command. All arguments
+present are appended, and the final argument is always serialized as
+trailing. If `-tags` is specified, the `tags` field will be inserted.
+If `-src` is specified, the `src` field will be inserted.
+
+Errors if any argument is invalid for its role.
+
+### `irc::msg send `*`chan ?-tags tags? ?-src src? cmd ?arg ...?`*
+
+Calls **`irc::msg fmt`** internally, and sends the message over `chan`.
+
+### `irc::msg parse `*`message tagsVar srcVar cmdVar paramsVar`*
+
+Parses the message in `message`. `tagsVar` will be set to the tags, if
+present. `srcVar` will be set to the source, if present. `cmdVar` will
+be set to the command. `paramsVar` will be set to a list of parameters
+in the message, if any.
+
+
## `irc::is `*`type value`*
A general validation utility for IRC strings. Returns true if `value`