Playing with types and extend-protocol.