When protocol-oriented programming leads to confusing behavior

Published --