 	/// 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)
+		commandsByVerb[command.verb] = AnyCommand(command)
 	}
 
 	/// Runs the command corresponding to the given verb, passing it the given

}

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


/// 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 }
	}

