anchor.diff:  
   TODO
   ////
  -The writer monad comes from Haskell too. It's used for accumulating a log together with the values generated by
  -computations. As with the state and reader monads, we don't have to explicitly thread the log manually since
  +The writer monad comes from Haskell too. It's used for accumulating a log
  +together with the values generated by computations. As with the state and
  +reader monads, we don't have to explicitly thread the log manually since
   the monadic bind takes care of that. The type
   ////
   
  
positive.code: ;; => [42 2 42 4 42]
  ----
  
  Another interesting traversals include `keys` for focusing on map keys, `vals` 
  for focusing on map values, and `indexed` for focusing on index-value pairs.
  
  
  ==== Interoperability
  
  `cats.labs.lens` implement the `Focus` and `Foci` atom types, which are derived 
  atoms with either a lens or a traversal. We can focus on a subpart of the 
  structure and change it, reflecting the changes on the original atom:
  
  
  
negative.code: what is called a monad comprehension, the difference is that `for` is limited to
  sequences and `mlet` can work with arbitrary monads.
  
  Also, since `mlet` desugars into calls to the Monad's `bind` function, its result
  keeps the type of the monadic values.
  
  
  ==== Lazy sequences
  