git.iko.soy/distributed-process
on master help sign in
Remove redundant code
c72345cEdsko de Vries
distributed-process/src/Control/Distributed/Process/Internal/Dynamic.hs+1−24
@@ -11,21 +11,12 @@ module Control.Distributed.Process.Internal.Dynamic
11 , fromDyn
11 , fromDyn
12 , fromDynamic
12 , fromDynamic
13 , dynTypeRep
13 , dynTypeRep
14− , dynBind
15− , dynBind'
16 , dynApply
14 , dynApply
17 , dynApp
15 , dynApp
18 , GHC.unsafeCoerce#
16 , GHC.unsafeCoerce#
19 ) where
17 ) where
20
18
21−import Data.Typeable
19+import Data.Typeable (Typeable, TypeRep, typeOf, funResultTy)
22− ( Typeable
23− , TypeRep
24− , typeOf
25− , TyCon
26− , splitTyConApp
27− , funResultTy
28− )
29import qualified GHC.Prim as GHC (Any, unsafeCoerce#)
20import qualified GHC.Prim as GHC (Any, unsafeCoerce#)
30import Data.Maybe (fromMaybe)
21import Data.Maybe (fromMaybe)
31
22
@@ -52,20 +43,6 @@ dynTypeRep (Dynamic t _) = t
52instance Show Dynamic where
43instance Show Dynamic where
53 show = show . dynTypeRep
44 show = show . dynTypeRep
54
45
55−dynBind :: TyCon -> (forall a b. m a -> (a -> m b) -> m b) -> Dynamic -> Dynamic -> Maybe Dynamic
56−dynBind m bind (Dynamic t1 x) (Dynamic t2 f) =
57− case splitTyConApp t1 of
58− (m', [a]) | m' == m ->
59− case funResultTy t2 a of
60− Just mb -> Just (Dynamic mb (GHC.unsafeCoerce# bind x f))
61− _ -> Nothing
62− _ -> Nothing
63−
64−dynBind' :: TyCon -> (forall a b. m a -> (a -> m b) -> m b) -> Dynamic -> Dynamic -> Dynamic
65−dynBind' m bind x f = fromMaybe (error typeError) (dynBind m bind x f)
66− where
67− typeError = "Type error in dynamic bind.\nCan't bind " ++ show x ++ " to " ++ show f
68−
69dynApply :: Dynamic -> Dynamic -> Maybe Dynamic
46dynApply :: Dynamic -> Dynamic -> Maybe Dynamic
70dynApply (Dynamic t1 f) (Dynamic t2 x) =
47dynApply (Dynamic t1 f) (Dynamic t2 x) =
71 case funResultTy t1 t2 of
48 case funResultTy t1 t2 of