Make Applicative-Monad fixes for tests. wip/dph-fix
authorGeoffrey Mainland <mainland@cs.drexel.edu>
Thu, 2 Oct 2014 21:39:34 +0000 (17:39 -0400)
committerGeoffrey Mainland <mainland@cs.drexel.edu>
Thu, 2 Oct 2014 21:40:26 +0000 (17:40 -0400)
testsuite/tests/array/should_run/arr016.hs
testsuite/tests/codeGen/should_run/CopySmallArrayStressTest.hs
testsuite/tests/codeGen/should_run/cgrun068.hs

index 055e660..0e8e2bf 100644 (file)
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables, DatatypeContexts #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 
 module Main where
 
@@ -151,7 +151,7 @@ instance Show (a -> b) where { show _ = "<FN>" }
 
 ------------------------------------------------------------------------------
 
-data (Ix a) => Array a b = MkArray (a,a) (a -> b) deriving ()
+data Array a b = MkArray (a,a) (a -> b) deriving ()
 
 array       :: (Ix a) => (a,a) -> [(a,b)] -> Array a b
 array b ivs =
@@ -259,6 +259,10 @@ generate n rnd (Gen m) = m size rnd'
 instance Functor Gen where
   fmap f m = m >>= return . f
 
+instance Applicative Gen where
+  pure  = return
+  (<*>) = liftM2 id
+
 instance Monad Gen where
   return a    = Gen (\n r -> a)
   Gen m >>= k =
@@ -508,4 +512,4 @@ instance Observable StdGen where { observer = observeBase }
 instance Observable a => Observable (Gen a) where 
   observer (Gen a) = send "Gen" (return (Gen) << a)
                           
--}
\ No newline at end of file
+-}
index 7243fad..05a84df 100644 (file)
@@ -361,7 +361,7 @@ cloneMArraySlow !marr !off n =
 -- Utilities for simplifying RNG passing
 
 newtype Rng s a = Rng { unRng :: StateT StdGen (ST s) a }
-                deriving Monad
+                deriving (Functor, Applicative, Monad)
 
 -- Same as 'randomR', but using the RNG state kept in the 'Rng' monad.
 rnd :: Random a => (a, a) -> Rng s a
index 69a8b27..00d1249 100644 (file)
@@ -361,7 +361,7 @@ cloneMArraySlow !marr !off n =
 -- Utilities for simplifying RNG passing
 
 newtype Rng s a = Rng { unRng :: StateT StdGen (ST s) a }
-                deriving Monad
+                deriving (Functor, Applicative, Monad)
 
 -- Same as 'randomR', but using the RNG state kept in the 'Rng' monad.
 rnd :: Random a => (a, a) -> Rng s a