anchor.diff:              let latestVer = con |> getLatestVersion entityId
               let newVer = latestVer + 1L
               if Option.isSome afterVersion && int64 afterVersion.Value <> latestVer then 
  -                raise (EntityConcurrencyException (entityId, sprintf "concurrency error while adding an event")) 
  +                raise (EntityConcurrencyException (sprintf "concurrency error while adding an event")) 
               else
               use cmd = new SqliteCommand("insert into EntityEvents (entityId, version, json) values (@eId,@eVer,@json)", con)
               cmd |> addParam ("@eId", Data.DbType.String, string entityId)
  
positive.code: 
      /// creates an event-repository using the given sqlite-connection-string
      /// this will check if a EntityEvents table exists and if not create one in the database
      let openAndCreate (conStr : string, useTransactions : bool) : IEventRepository =
          let con = new SqliteConnection (conStr)
          con |> createEntityEventsTable
          create (con, useTransactions)
negative.code:     /// creates an event-repository using the given sqlite-connection
      /// this will check if a EntityEvents table exists and if not create one in the database
      /// if the repository will get disposed it will dispose the connection with it
      let create (connection : SqliteConnection, useTransactions : bool) : IEventRepository<EntityId, 'event> =
          
          let call f (t : ITransactionScope) = f (t :?> SqliteTransaction)
          let execute f t = call (fun t -> t.execute f) t
  
          { new IEventRepository<EntityId, 'event> with
              member __.Dispose()            = connection.Dispose()
              member __.add (t,id,ver,event) = t |> execute (addEvent (id,ver,event))
              member __.exists (t,id)        = t |> execute (exists id)
  