anchor.diff:          with e -> 
               Failed e
   
  +let inline mreturn a = 
  +    fun (cmgr: ConnectionManager) -> Commit a
  +
   type TransactionBuilder() =
       member x.Delay f = f()
   
  
positive.code:     member x.Combine(m1, m2) = 
          x.Bind(m1, fun() -> m2)
  
      member x.Return a = 
          fun (cmgr: ConnectionManager) -> Commit a
  
      member x.Zero() = x.Return ()
  
  
negative.code: /// For use within a tx monad.
  let rollback a (mgr: ConnectionManager) = Rollback a
  
  let map f m = 
      fun (conn: ConnectionManager) ->
          match m conn with
          | Commit a -> f a |> Commit
          | Failed x -> Failed x
          | Rollback x -> Rollback x