anchor.diff:  [<Test;Parallelizable>]
   let ``tx monad ok`` () = 
       let c = withMemDb()
  -    let tran() = tx {
  +    let tran = tx {
           do! txInsert 3 
           do! txInsert 4
           return 8
       }
  -    let result = tran() c // execute transaction
  +    let result = tran c // execute transaction
       match result with
       | Tx.Commit a -> Assert.AreEqual(8, a)
       | Tx.Failed e -> failwithe e "Transaction should not have failed"
  
positive.code:             |> Enumerable.First
          return id
      }
      let result = tran() c
      match result with
      | Tx.Commit a -> Assert.AreEqual(3, a)
      | Tx.Rollback a -> failwith "Transaction should not have failed"
  
negative.code:         with e ->
              do! txInsert 3
      }
      let result = tran c
      match result with
      | Tx.Commit a -> Assert.AreEqual(2L, countUsers c)
      | Tx.Rollback a -> failwith "Transaction should not have failed"
      | Tx.Failed e -> failwithe e "Transaction should not have failed"
  