Compose a set of TypeNames (usually protocols) as a single TypeName.
Composition of types A, B and C is
A
B
C
A & B & C