From an intense disagreement this afternoon:
func foo<T: protocol<A,B>>(x: T)
func foo<T: protocol<A, B>>(x: T)
Clearly the latter wins. But why? Because orthography matters.
Strunk writes, “omit needless words”. But Strunk did not write, “omit needless keystrokes”. Space-delimited commas offer semantic and syntactic separation between two related items. It follows the convention commonly used in mathematics.
A space-delimited comma supports natural language precedent allowing the eye to scan each token as a distinct entity. It serves as a pause signal for the code reader, allowing mental differentiation between the two elements (in this case, dual protocols).
Without that pause, the two protocols blend into an undifferentiated mass, especially as they are surrounded by the angle brackets used to construct the protocol conformance and type parameter. Allowing space to breathe creates a more readable product, and is to be preferred to its spaceless alternative.
 This advantage is to be conveyed to all users, whether or not they are Canadian in origin.