dph-lifted-base: Add Data.Typeable instances
authorBen Lippmeier <benl@ouroborus.net>
Tue, 17 Jul 2012 04:10:50 +0000 (14:10 +1000)
committerBen Lippmeier <benl@ouroborus.net>
Mon, 30 Jul 2012 03:48:35 +0000 (13:48 +1000)
dph-lifted-base/Data/Array/Parallel/PArray/Types.hs

index c32ed42..34450da 100644 (file)
@@ -27,6 +27,7 @@ module Data.Array.Parallel.PArray.Types
 where
 import Data.Array.Parallel.Base (Tag)
 import Data.Array.Parallel.Pretty
+import Data.Typeable
 
 
 -- Void -----------------------------------------------------------------------
@@ -37,6 +38,8 @@ import Data.Array.Parallel.Pretty
 -- 
 data Void
 
+deriving instance Typeable Void
+
 -- | A 'value' with the void type. Used as a placholder like `undefined`.
 --   Forcing this yields `error`. 
 void    :: Void
@@ -60,6 +63,9 @@ fromVoid = error $ unlines
 data Sum2 a b
         = Alt2_1 a | Alt2_2 b
 
+deriving instance Typeable2 Sum2
+
+
 tagOfSum2 :: Sum2 a b -> Tag
 tagOfSum2 ss
  = case ss of
@@ -80,6 +86,9 @@ instance (PprPhysical a, PprPhysical b)
 data Sum3 a b c
         = Alt3_1 a | Alt3_2 b | Alt3_3 c
 
+deriving instance Typeable3 Sum3
+
+
 tagOfSum3 :: Sum3 a b c -> Tag
 tagOfSum3 ss
  = case ss of
@@ -114,3 +123,4 @@ tagOfSum3 ss
 --
 newtype Wrap a = Wrap { unWrap :: a }
 
+deriving instance Typeable1 Wrap