Comportamiento inesperado al extender un protocolo Swift desde otro framework (Restofire)

Tengo dos frameworks

Primero – Restofire . Tiene un protocolo ResponseSerializer con extensión.

public protocol ResponseSerializable { /// The type of object returned in response. associatedtype Model /// The `Alamofire.ResponseSerializer`. var responseSerializer: ResponseSerializer<Model, NSError> { get } } extension ResponseSerializable { /// `CustomJSONResponseSerializer` public var responseSerializer: ResponseSerializer<Model, NSError> { return AlamofireUtils.JSONResponseSerializer() } } 

Segundo – Restofire-Gloss . Tiene una extensión para un protocolo para Modelos conforme a Decodable que se encuentra en el marco Restofire.

 public extension ResponseSerializable where Model: Decodable { /// `GLOSSResponseSerializer` public var responseSerializer: ResponseSerializer<Model, NSError> { return GlossUtils.GLOSSResponseSerializer() } } public extension ResponseSerializable where Model: CollectionType, Model.Generator.Element: Decodable { /// `GLOSSResponseSerializer` public var responseSerializer: ResponseSerializer<Model, NSError> { return GlossUtils.GLOSSResponseSerializer() } } 

Cuando importe los files fuente de Restofire-Gloss directamente en el proyecto, todo funciona como se esperaba, pero cuando importe el marco, el control no alcanza la function en el marco Restofire-Gloss.

¿Quizás debería marcar la extensión como pública?