anchor.diff:                  async { () }
               else
   
  -            use scope = Utilities.ensureTransaction()
               try
                   // close the connection first otherwise it won't get enlisted into the transaction
  -                if con.State = ConnectionState.Open then con.Close()
  +                // ...but if access connection is ever closed, it will start to give unknown errors!
  +                // if con.State = ConnectionState.Open then con.Close()
                   async {
  -
  -                    do! con.OpenAsync() |> Async.AwaitIAsyncResult |> Async.Ignore
  +                    if con.State = ConnectionState.Closed then
  +                        do! con.OpenAsync() |> Async.AwaitIAsyncResult |> Async.Ignore
                       use trnsx = con.BeginTransaction()
                       try
                           // initially supporting update/create/delete of single entities, no hierarchies yet
  
positive.code: 
              try
                  // close the connection first otherwise it won't get enlisted into the transaction
                  if con.State = ConnectionState.Open then con.Close()
                  con.Open()
                  use trnsx = con.BeginTransaction()
                  try
                      // initially supporting update/create/delete of single entities, no hierarchies yet
  
negative.code: 
                          do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList)
                          trnsx.Commit()
  
                      with _ ->
                          trnsx.Rollback()
                  }
              finally
                  //con.Close()
                  ()
  