anchor.diff:  (require '[cats.monad.maybe :as maybe])
   
   (m/mzero maybe/maybe-monad)
  -;; => #<Nothing >
  +;; => #<Nothing>
   ----
   
   Having an identity element we can make a monadic composition short-circuit using a predicate:
  
positive.code: 
  (ctx/with-context maybe/context
    (m/traverse just-if-even [1 2]))
  ;; => #<Nothing >
  
  (ctx/with-context maybe/context
    (m/traverse just-if-even [2 3]))
  ;; => #<Nothing >
  ----
  
  Maybe is not that much of an interesting applicative, let's see an example of using the Validation
  
negative.code: (m/mlet [a (maybe/just 1)
           :when (= a 2)]
     (m/return (* a 2)))
  ;; => #<Nothing>
  ----
  
  Any monadic type that implements `MonadZero` can be combined with guards inside `mlet` bindings. Here is an example with
  