@@ -0,0 +1,37 @@
1+import Control.Monad (replicateM)
2+import Control.Parallel.Strategies
4+import Data.Maybe (fromJust)
5+import qualified Data.ByteString.Lazy as BL
6+import qualified Data.ByteString.Lazy.Internal as BL
7+import qualified Data.UUID as U
8+import qualified Data.UUID.Internal as U
12+instance NFData BL.ByteString where
14+ rnf (BL.Chunk _ ts) = rnf ts
16+instance NFData U.UUID where
17+ rnf (U.UUID tl tm th ch cl node) =
18+ rnf tl `seq` rnf tm `seq` rnf th `seq` rnf ch `seq` rnf cl `seq` rnf node
20+instance NFData U.Node where
21+ rnf (U.Node w1 w2 w3 w4 w5 w6) =
22+ rnf w1 `seq` rnf w2 `seq` rnf w3 `seq` rnf w4 `seq` rnf w5 `seq` rnf w6
29+ let s1 = U.toString u1
30+ b1 = U.toByteString u1
32+ bench "toString" $ B (rnf . U.toString) u1,
33+ bench "fromString" $ B (rnf . U.fromString) s1,
34+ bench "toByteString" $ B (rnf . U.toByteString) u1,
35+ bench "fromByteString" $ B (rnf . U.fromByteString) b1,
36+ bench "random gen" $ (randomIO :: IO U.UUID)