fn maximum_of_intersection(
    range1: ProtocolsRange,
    range2: ProtocolsRange
) -> Result<Protocol, ProtocolNegotiationError>