Genérico Swift Dictionary Extension para filtrado nulo

Estoy buscando un tipo seguro, versión genérica deesta respuesta.

Esta es la firma del método que estoy buscando:

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

¿Hay alguna forma de expresar esto en Swift 3?

Editar:

Mi motivación para crear un diccionario con valores opcionales es que necesito algo como esto:

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

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

Prefiero el diccionario literal a crear un diccionario vacío y llenar los valores manualmente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta