packages feed

crdt-event-fold-1.8.0.0: test/benchmark-many-events.hs

{-# LANGUAGE NumericUnderscores #-}

module Main (main) where

import Data.CRDT.EventFold (UpdateResult(UpdateResult, urEventFold),
  acknowledge, new)
import Data.CRDT.EventFold.Monad (MonadUpdateEF(event, participate),
  runEventFoldT)


main :: IO ()
main = do
  ((), UpdateResult { urEventFold = ef }) <-
    runEventFoldT 'a' (new () 'a') $ do
      _ <- participate 'b'
      sequence_ $ replicate 500_000 (event ())

  let ur = acknowledge 'b' ef
  print ur