Como armazeno um valor do tipo Classe <ClassImplementingProtocol> em um Dicionário do tipo [String: Class <Protocol>] no Swift?

Eu quero armazenar um tipo mais especializado em um dicionário do tipo [String: SomeClass]. Aqui está um código de exemplo que ilustra meu problema (também disponível para jogar emhttps://swiftlang.ng.bluemix.net/#/repl/579756cf9966ba6275fc794a):

class Thing<T> {}

protocol Flavor {}

class Vanilla: Flavor {}

var dict = [String:Thing<Flavor>]()

dict["foo"] = Thing<Vanilla>() 

Produz o erroERROR at line 9, col 28: cannot assign value of type 'Thing<Vanilla>' to type 'Thing<Any>?'.

Eu tentei lançarThing<Vanilla>() as Thing<Flavor> mas isso produz o errocannot convert value of type 'Thing<Vanilla>' to type 'Thing<Flavor>' in coercion.

Eu também tentei definir o dicionário como tipo[String:Thing<Any>] mas isso também não muda nada.

Como crio uma coleção de diferentesThings sem recorrer à planície[String:AnyObject]?

Também devo mencionar que a turmaThing não é definido por mim (na verdade, é sobre BoltsSwiftTasks), então a solução para criar uma classe base deThing sem um parâmetro de tipo não funciona.

questionAnswers(2)

yourAnswerToTheQuestion