{-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE TemplateHaskell #-} module Data.Concurrent.HashMap.Internal where import Data.Bits import Data.Word import Language.Haskell.TH whichHash :: ExpQ -> ExpQ -> Q Exp whichHash as32 as64 = if bitSize (undefined :: Word) == 32 then [| \x -> fromIntegral $ $as32 x |] else [| \x -> fromIntegral $ $as64 x |]