Protocols and Extensions.

Really interesting to be able to extend pre-defined types, like ints
and doubles, etc. Seems very convenient.

Note: Protocols behave similarly to Java interfaces.