anchor.diff:  Monads are the most discussed programming concept to come from category theory. Like functors and
   applicatives, monads deal with data in contexts.
   
  -Additionaly, monads can also transform contexts by unwrapping data, applying functions to it and
  +Additionally, monads can also transform contexts by unwrapping data, applying functions to it and
   putting new values in a completely different context.
   
   The monad abstraction consists of two functions: *bind* and *return*
  
positive.code: ;; => #<Just 2>
  ----
  
  The `just` function is a constructor of Just type that is part of Maybe monad.
  
  Let's see one example using *fmap* over *just* instance:
  
  .Example using fmap over *just* instance.
  [source, clojure]
  
negative.code: 
  == Rationale
  
  The main motivations for writing this library are:
  
  * The existing libraries do not have support for ClojureScript.
  * We do not intend to write a little Haskell inside Clojure. We have adopted a
    practical and Clojure like approach, always with correctness in mind.
  * We do not like viral/copyleft like licenses and in contrast to other libraries
    cats is licensed under the BSD (2 clauses) license.
  * We do not intend to only implement monads. Other category theory and algebraic abstractions 
    are also first class in cats.
  
  
  *Alternatives:*
  
  * **algo.monads**: This is the official Clojure library for monads. Its approach for modeling
    monads is slightly limited, only supports the monad abstraction and does not have support for
    ClojureScript.
  * **fluokitten**: Slightly unmaintaned by the original author. It is focused on being very practical
    without taking care of correctness (for example, it extends Clojure types with monadic abstractions
    that do not make sense). It has no support for ClojureScript either.
  * **monads**: Is the most advanced monads library, supports also functors, applicatives and other
    related abstractions. It lacks a good and readable documentation, focus on correctness, has
    Haskell like sugar syntax (instead of Clojure like syntax) and does not have support for ClojureScript.
  
  All listed alternatives are licensed with EPL or similar licenses.
  
  