Add an example of an implicit conversion of receiver types.

Have you wondered how the -> is supported? It’s not syntax! Instead, ->
is a method of the class ArrowAssoc, a class defined inside the standard
Scala preamble (scala.Predef). The preamble also defines an implicit
conversion from Any to ArrowAssoc. When you write 1 -> "one", the compiler
inserts a conversion from 1 to ArrowAssoc so that the -> method can be
found.

Here, I add an alternate "syntax" for declaring Maps, where the ::
double colon operator is used as the character for relating keys to
values, eventually converting them to Tuple2 objects for consumption by
Map.

This "rich wrappers" pattern is common in libraries that provide
syntax-like extensions to the language, so you should be ready to
recognize the pattern when you see it. Whenever you see someone calling
methods that appear not to exist in the receiver class, they are
probably using implicits. Similarly, if you see a class named
RichSomething, e.g., RichInt or RichBoolean, that class is likely adding
syntax-like methods to type Something.

These rich wrappers can be widely applied, often letting you get by
with an internal DSL defined as a library where programmers in other
languages might feel the need to develop an external DSL.