{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import Criterion.Main as Criterion
import Data.GenValidity.Criterion
import Data.GenValidity.Mergeless ()
import Data.Mergeless.Collection
import Data.Mergeless.Item
main :: IO ()
main =
Criterion.defaultMain
[ bgroup
"Utils"
[ genValidBench @(Added Bool)
, genValidBench @(Synced Bool)
, genValidBench @(ClientAddition Int)
]
, bgroup
"Item"
[ genValidBench @(ClientItem Bool)
, genValidBench @(ItemSyncRequest Bool)
, genValidBench @(ItemSyncResponse Bool)
, genValidBench @(ServerItem Bool)
]
, bgroup
"Collection"
[ genValidBench @ClientId
, genValidBench @(ClientStore Int Bool)
, genValidBench @(SyncRequest Int Bool)
, genValidBench @(ClientAddition Int)
, genValidBench @(SyncResponse Int Bool)
, genValidBench @(ServerStore Int Bool)
]
]