Reasoning about protocols

This is a really nice read. Tjeerd clears up some of the confusion which may arise when using Swift protocols.