anchor.diff:  ;; => #<Nothing >
   ----
   
  -Moreover, the applicative functor comes with *pure* function, and the main purpose of this function is
  -to put some value in side-effect-free context of the current type.
  +Moreover, the applicative functor comes with the *pure* function, which allows
  +you to put some value in side-effect-free context of the current type.
   
   Examples:
   
  
positive.code: ----
  
  As you can see, bind works much like a Functor but with inverted arguments. The main difference is
  that in a monad, the function is a responsible for wrapping a returned value in a context.
  
  .Example usage of the bind higher-order function.
  [source,clojure]
  
negative.code: ;; => #<Nothing >
  ----
  
  there are other useful functions for working with maybe monad types in the same namespace. 
  See the API documentation for a full list of them. But here we will explain a little relevant subset
  of them.
  
  We mentioned above that *fmap* extracts the value from a functor context. You will also want to
  extract values wrapped by *just* and you can do that with *from-maybe*.
  
  As we said previously, the Just or Nothing instances, act like wrappers and in some circumstances
  you will want extract the plain value from them. cats offers the `from-maybe` function for that.
  
  .Example using *from-maybe* to extract values wrapped by *just*.
  [source, clojure]
  