I had a look at the Crustacean.playground (which demonstrates protocol oriented programming), available here:
https://developer.apple.com/swift/resources/
It's a great demonstration but it seems to contain a small mistake in that it says:
// Note: the fact that "rectangleAt" doesn't appear below, but
// "circleAround" does, serves as a demonstration of how dispatching through
// protocols works: methods in protocol extensions that don't match a
// requirement (such as rectangleAt) are dispatched statically.
It is true that "rectableAt" appears above and not below, but there is no "circleAround" at all in the output, and there isn't even any circleAround method, just circleAt, which is not appearing anywhere in the output either.
Tell me if I'm misunderstanding something, or please correct this otherwise great playground.