Remove unnecessary spaces form the Cake Pattern sample code.
Pattern matching behaviour regarding nulls

 - Pattern matching works by matching on objects not reference type
Add an example of val initialization in traits and classes
Complete comments for ATroubleWithTraits puzzlers example
Add another example of how vals and traits work and their pitfalls

 - In short, better not declare vals in traits since they will
be implemented as methods behind the scenes with additional abstract
classes to help set the val when appropriate.
This examples shows that one needs to be careful when using map on sets

 - Map might not output what one expects with sets since sets cannot
contain duplicated.
An example of how generic parameters and implicits mix together
Add an example of the use of "implicitly" Scala keyword.
Among the perils of closures

 - One has to be very careful with the values captured by closures.
Object initialization tricks
Rename classes to avoid name collisions within the package
An example of how equals and hasCode work in Scala
An interesting case of lazy vals and how they get evaluated.
Add explanations to the ACaseOfEquality example.
Another example of what happens when you combine map with sets

 - In this case the SortedSet will reorder the result applying the map
operation.
Private access modifier in Scala and its differences from Java
An example of how self reference works in Scala

 - For some reason, it is OK to use something like this, if it is
defined inside a class:
 val s: String = s
Add a print to the implicitly puzzler to display something when running
the app
An example of multiple val initialization on the same line and how that
works.
Update puzzler with explanations.