 }
 
 /// A type-erased CommandType.
-public struct CommandOf<ClientError>: CommandType {
+public struct AnyCommand<ClientError>: CommandType {
 	public let verb: String
 	public let function: String
 	private let runClosure: CommandMode -> Result<(), CommandantError<ClientError>>

	/// If another command was already registered with the same `verb`, it will
	/// be overwritten.
	public func register<C: CommandType where C.ClientError == ClientError>(command: C) {
		commandsByVerb[command.verb] = CommandOf(command)
	}

	/// Runs the command corresponding to the given verb, passing it the given


/// Maintains the list of commands available to run.
public final class CommandRegistry<ClientError> {
	private var commandsByVerb: [String: AnyCommand<ClientError>] = [:]

	/// All available commands.
	public var commands: [AnyCommand<ClientError>] {
		return commandsByVerb.values.sort { return $0.verb < $1.verb }
	}

