unions

fun Iterable<Backend>.unions(): Backend

Combines back ends for different protocols into one that supports all.