The document discusses implicit conversions in Scala. It shows an example of implicitly converting a String to a RichString to call the reverse method. It then explains how an implicit conversion is defined to perform this conversion. It also discusses other implicit conversions defined in the Predef object, such as converting types to their wrapper classes. Finally, it summarizes the rules for how and when implicit conversions are inserted in Scala.
13. Implicit rules!
Marking Rule: Only definitions marked implicit are available.
Scope Rule: An inserted implicit conversion must be in scope as a
single identifier, or be associated with the source or target type of the
conversion.
Non-Ambiguity Rule: An implicit conversion is only inserted if there is no
other possible conversion to insert.
One-at-a-time Rule: Only one implicit is tried.
Explicits-First Rule: Whenever code type checks as it is written, no
implicits are attempted.