3
3
{-# LANGUAGE FlexibleInstances #-}
4
4
{-# LANGUAGE ScopedTypeVariables #-}
5
5
{-# LANGUAGE GADTs #-}
6
- {-# LANGUAGE CPP #-}
7
6
module Control.Distributed.Process.Serializable
8
7
( Serializable
9
8
, encodeFingerprint
@@ -18,17 +17,7 @@ module Control.Distributed.Process.Serializable
18
17
19
18
import Data.Binary (Binary )
20
19
21
- #if MIN_VERSION_base(4,10,0)
22
- import Data.Typeable (Typeable )
23
- import Type.Reflection (typeRep )
24
- import Type.Reflection.Unsafe (TypeRep , typeRepFingerprint )
25
- #elif MIN_VERSION_base(4,7,0)
26
- import Data.Typeable (Typeable )
27
- import Data.Typeable.Internal (TypeRep (TypeRep ), typeOf )
28
- #else
29
- import Data.Typeable (Typeable (.. ))
30
- import Data.Typeable.Internal (TypeRep (TypeRep ))
31
- #endif
20
+ import Data.Typeable (Typeable , typeRepFingerprint , typeOf )
32
21
33
22
import Numeric (showHex )
34
23
import Control.Exception (throw )
@@ -75,14 +64,8 @@ sizeOfFingerprint :: Int
75
64
sizeOfFingerprint = sizeOf (undefined :: Fingerprint )
76
65
77
66
-- | The fingerprint of the typeRep of the argument
78
- fingerprint :: forall a . Typeable a => a -> Fingerprint
79
- #if MIN_VERSION_base(4,10,0)
80
- fingerprint _ = typeRepFingerprint (typeRep :: TypeRep a )
81
- #elif MIN_VERSION_base(4,8,0)
82
- fingerprint a = let TypeRep fp _ _ _ = typeOf a in fp
83
- #else
84
- fingerprint a = let TypeRep fp _ _ = typeOf a in fp
85
- #endif
67
+ fingerprint :: Typeable a => a -> Fingerprint
68
+ fingerprint = typeRepFingerprint . typeOf
86
69
87
70
-- | Show fingerprint (for debugging purposes)
88
71
showFingerprint :: Fingerprint -> ShowS
0 commit comments