@@ -19,14 +19,14 @@ import Criterion.Main (Benchmark, bench, bgroup, nf)
20import Prelude hiding (lookup)
20import Prelude hiding (lookup)
22−import Control.Exception
23import Control.DeepSeq (rnf)
22import Control.DeepSeq (rnf)
23+import Control.Exception
24import Data.Maybe (fromJust)
24import Data.Maybe (fromJust)
25import Data.Proxy (Proxy (..))
25import Data.Proxy (Proxy (..))
26import Data.Typeable (Typeable)
26import Data.Typeable (Typeable)
27import GHC.TypeLits
27import GHC.TypeLits
29−import Data.TypeRep.Map (TypeRepMap (..), empty, insert, lookup, keys)
29+import Data.TypeRep.Map (TypeRepMap (..), empty, insert, keys, lookup)
31benchMap :: Benchmark
31benchMap :: Benchmark
32benchMap = bgroup "map"
32benchMap = bgroup "map"
@@ -48,7 +48,7 @@ tenLookups tmap = (lp, lp, lp, lp, lp, lp, lp, lp)
48bigMap :: TypeRepMap (Proxy :: Nat -> *)
48bigMap :: TypeRepMap (Proxy :: Nat -> *)
49bigMap = buildBigMap 10000 (Proxy :: Proxy 0) empty
49bigMap = buildBigMap 10000 (Proxy :: Proxy 0) empty
51−buildBigMap :: forall a . (Typeable a, KnownNat a) => Int -> Proxy (a :: Nat) -> TypeRepMap (Proxy :: Nat -> *) -> TypeRepMap (Proxy :: Nat -> *)
51+buildBigMap :: forall a . (KnownNat a) => Int -> Proxy (a :: Nat) -> TypeRepMap (Proxy :: Nat -> *) -> TypeRepMap (Proxy :: Nat -> *)
52buildBigMap 1 x = insert x
52buildBigMap 1 x = insert x
53buildBigMap n x = insert x . buildBigMap (n - 1) (Proxy :: Proxy (a + 1))
53buildBigMap n x = insert x . buildBigMap (n - 1) (Proxy :: Proxy (a + 1))