anchor.diff:  ;; => #<Just [2]>
   ----
   
  -But **Maybe** has another constructor: `maybe/nothing`. This constructor makes 
  +But **Maybe** has another constructor: `maybe/nothing`. This constructor makes
   empty object that not wraps anything. It represents the failure. Is the safe
   substitute of `nil` and represents the failure.
   
  
positive.code: ;; => #<Nothing >
  ----
  
  Moreover, the applicative functor protocol comes with another function: `pure`. The main purpose of
  this function is, given any value in a context and new value, wrap the new value in a minimal context of the same
  type as the first argument.
  
  Examples:
  
  [source, clojure]
  ----
  (pure (just 1) 5)
  ;; => #<Just [5]>
  
  (pure (right :foo) :bar)
  ;; => #<Either [:bar :right]>
  ----
  
  You will understand the real purpose of this function when using a **Monad** abstraction.
  
  
  Monad
  ~~~~~
  
negative.code:     "es" (just (fn [name] (str "Hola " name)))
      "en" (just (fn [name] (str "Hello " name)))
      (nothing)))
  ----
  
  As you can observe, this version of factory differs little bit from the
  original implementation. And this little change makes you superpower: you
  can apply the returned greater to any value without defensive nil checking:
  
  [source, clojure]
  ----
  (fapply (make-greeter "es") (just "Alex"))
  ;; => #<Just [Hola Alex]>
  
  