{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
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
"Item"
[ genValidBench @(ClientItem Bool),
genValidBench @(ItemSyncRequest Bool),
genValidBench @(ItemSyncResponse Bool),
genValidBench @(ServerItem Bool)
],
bgroup
"Collection"
[ genValidBench @ClientId,
genValidBench @(ClientStore ClientId Int Bool),
genValidBench @(SyncRequest ClientId Int Bool),
genValidBench @(SyncResponse ClientId Int Bool),
genValidBench @(ServerStore Int Bool)
]
]