Fix some Applicative-Monad stuff
authorAustin Seipp <austin@well-typed.com>
Mon, 4 Aug 2014 10:17:23 +0000 (05:17 -0500)
committerAustin Seipp <austin@well-typed.com>
Mon, 4 Aug 2014 10:17:23 +0000 (05:17 -0500)
Signed-off-by: Austin Seipp <austin@well-typed.com>
dph-lifted-base/Data/Array/Parallel/PArray/Reference.hs
dph-lifted-boxed/Data/Array/Parallel/PArray.hs
dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Primitive/DistST.hs
dph-prim-seq/Data/Array/Parallel/Unlifted/Sequential/Vector.hs

index 3bcf736..a98ffdc 100644 (file)
@@ -55,7 +55,7 @@ import Data.Array.Parallel.Base                 (Tag)
 import Data.Vector                              (Vector)
 import qualified Data.Array.Parallel.Unlifted   as U
 import qualified Data.Vector                    as V
-import Control.Monad
+import Control.Monad hiding ( empty )
 import Prelude hiding
         ( replicate, length, concat
         , enumFromTo
index d19b795..3b6b6f1 100644 (file)
@@ -59,7 +59,7 @@ import Data.Vector                              (Vector)
 import qualified Data.Array.Parallel.Unlifted   as U
 import qualified Data.Array.Parallel.Array      as A
 import qualified Data.Vector                    as V
-import Control.Monad
+import Control.Monad hiding (empty)
 import GHC.Exts (Int(I#), (+#))
 import qualified Prelude                        as P
 import Prelude hiding
index a41ad5b..cdabbda 100644 (file)
@@ -31,7 +31,7 @@ import Data.Array.Parallel.Unlifted.Distributed.Primitive.DT
 import Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang
 import Data.Array.Parallel.Unlifted.Distributed.Data.Tuple
 import Data.Array.Parallel.Base (ST, runST)
-import Control.Monad (liftM)
+import Control.Monad (liftM, ap)
 
 
 -- | Data-parallel computations.
@@ -40,6 +40,13 @@ import Control.Monad (liftM)
 --   then we can make a regular ST computation.
 newtype DistST s a = DistST { unDistST :: Int -> ST s a }
 
+instance Functor (DistST s) where
+  fmap = liftM
+
+instance Applicative (DistST s) where
+  pure = return
+  (<*>) = ap
+
 instance Monad (DistST s) where
   {-# INLINE return #-}
   return         = DistST . const . return 
index e7d45b2..20b6170 100644 (file)
@@ -133,7 +133,7 @@ import qualified Prelude
 import qualified System.Random as R
 import Foreign hiding ( new )
 import System.IO
-import Control.Monad
+import Control.Monad hiding (empty)
 
 here s = "Data.Array.Parallel.Unlifted.Sequential.Flat." Prelude.++ s