anchor.diff:  (map inc [1 2 3])
   ;; => (2 3 4)
   ----
  +
  +But why fmap works with vectors? Some "container" types of clojure like vectors, lists or sets 
  +also implements the functor abstraction.
   
   
   Applicative Functor
  
positive.code: ;; => #<Nothing >
  ----
  
  [NOTE]
  ====
  The real fmap signature is `(a -> b) -> f a -> f b` that can be translated to clojure `[f fv]`.
  
  The changed order of the protocol parameters definition is required because of clojure's protocols
  limitation that only allow dispatching on the first argument.
  
  You should never use a protocol function directly. Instead use `cats.core/fmap`. It has
  the correct signature.
  
  All examples in this documentation uses `cats.core/fmap` instead of a function defined in the
  protocol.
  ====
  
  Some of the native clojure types, like Vector, also implements the Functor protocol and can
  work like a functor context/container:
  
  [source, clojure]
  ----
  
negative.code: git clone https://github.com/niwibe/cats
  ----
  
  User Guide
  ----------
  
  This section introduces almost all category theory abstractios that cats library
  supports.
  