anchor.diff:     (m/return (* a 2)))
   ;; => [2 6]
   ----
  +
   
   === alet
   
  
positive.code: 
  == Syntax sugar
  
  === mlet
  
  For convenience when using the monadic bind the `mlet` macro is implemented in
  cats. If you've followed along with the documentation you've seen many examples
  of its usage already, let's see what can `mlet` do.
  
  NOTE: If you are coming from Haskell, mlet is analogous to the *do notation*.
  
  First of all, mlet turns this let-like bindings
  
  [source, clojure]
  ----
  
negative.code:                     (m/return (* a b))))))
  ----
  
  That makes a lot more natural to write code that uses monads and gives a very
  familiar `let` like syntax abstraction that makes the clojure code that uses
  monads less "strange".
  
  If you are coming from Haskell, mlet is mostly analogous to the *do notation*.
  
  Since the bindings in the mlet macro run the monadic effects of the right-hand
  values we cannot just put any value in there and expect to be bound to its
  