Extensão genérica do dicionário Swift para filtragem nula

Estou procurando um tipo de versão segura e genérica deesta resposta.

Esta é a assinatura do método que estou procurando:

extension Dictionary where Value == Optional<T> {
    func filterNil() -> <Key, T>
}

Existe alguma maneira de expressar isso no Swift 3?

Editar:

Minha motivação para criar um dicionário com valores opcionais é que preciso de algo assim:

struct User {
    var mail: String?
    var name: String?

    func marshaled() -> [String: Any] {
        return [
            "mail": mail,
            "name": name
        ].filterNil()
    }
}

Eu prefiro o literal do dicionário a criar um dicionário vazio e preencher os valores manualmente.

questionAnswers(1)

yourAnswerToTheQuestion