Test if a type conforms to a non-existential protocol

Please see my reply here, thanks.