anchor.diff:  ;; => (2 3 4)
   ----
   
  -But why fmap works with vectors? Some "container" types of clojure like vectors, lists or sets
  -also implements the functor abstraction.
  +But why fmap works with vectors? Because some "container" types of clojure like vectors,
  +lists or sets also implements the functor abstraction.
   
   
   Applicative
  
positive.code: ;; => #<Either [:bar :right]>
  ----
  
  Possible you will understand the purpose and use case of **pure** function in
  the next section: *Monad*.
  
  Monad
  ~~~~~
  
negative.code: that in monad, the function is a responsible of wrapping a retuned value in a context.
  
  One of the key features of the bind function is that any computation executed inside of context of
  bind (monad) knows the context type implicitly. Having this, if you apply some computation over some
  monadic value  and you want to return the result in the same container context but you don't know
  that container is it, you can use `return` or `pure` functions:
  
  [source,clojure]
  