--- syb-0.4.3-orig/tests/XML.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/XML.hs 2015-01-02 12:47:10.082782760 +1100 @@ -13,6 +13,7 @@ import Test.HUnit +import Control.Applicative (Alternative(..), Applicative(..)) import Control.Monad import Data.Maybe import Data.Generics @@ -157,6 +158,17 @@ else Just (tail x, head x) ) +instance Functor ReadX where + fmap = liftM + +instance Applicative ReadX where + pure = return + (<*>) = ap + +instance Alternative ReadX where + (<|>) = mplus + empty = mzero + -- ReadX is a monad! instance Monad ReadX where return x = ReadX (\y -> Just (y,x)) --- syb-0.4.3-orig/tests/Perm.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/Perm.hs 2015-01-02 12:47:02.751422866 +1100 @@ -11,6 +11,7 @@ import Test.HUnit +import Control.Applicative (Alternative(..), Applicative(..)) import Control.Monad import Data.Generics @@ -44,6 +45,17 @@ else Just (tail x, head x) ) +instance Functor ReadT where + fmap = liftM + +instance Applicative ReadT where + pure = return + (<*>) = ap + +instance Alternative ReadT where + (<|>) = mplus + empty = mzero + -- ReadT is a monad! instance Monad ReadT where return x = ReadT (\y -> Just (y,x)) --- syb-0.4.3-orig/tests/Bits.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/Bits.hs 2015-01-02 12:46:37.842839944 +1100 @@ -39,6 +39,7 @@ import Data.Generics import Data.Char import Data.Maybe +import Control.Applicative (Alternative(..), Applicative(..)) import Control.Monad import CompanyDatatypes @@ -129,6 +130,16 @@ data ReadB a = ReadB (Bin -> (Maybe a, Bin)) unReadB (ReadB f) = f +instance Functor ReadB where + fmap = liftM + +instance Applicative ReadB where + pure = return + (<*>) = ap + +instance Alternative ReadB where + (<|>) = mplus + empty = mzero -- It's a monad. instance Monad ReadB where --- syb-0.4.3-orig/tests/Encode.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/Encode.hs 2015-01-02 12:51:48.500949407 +1100 @@ -6,6 +6,8 @@ module Encode () where +import Control.Applicative (Applicative(..)) +import Control.Monad (ap, liftM) import Data.Generics data Bit = Zero | One @@ -62,6 +64,11 @@ -- Sec. 3.3 cont'd data EncM a -- The encoder monad +instance Functor EncM where + fmap = liftM +instance Applicative EncM where + pure = return + (<*>) = ap instance Monad EncM where return = undefined --- syb-0.4.3-orig/tests/GRead2.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/GRead2.hs 2015-01-02 12:51:27.524567019 +1100 @@ -10,6 +10,8 @@ -} +import Control.Applicative (Applicative(..)) +import Control.Monad (ap, liftM) import Data.Generics gread :: Data a => String -> Maybe a @@ -18,6 +20,13 @@ -- The decoder monad newtype DecM a = D (String -> Maybe (String, a)) +instance Functor DecM where + fmap = liftM + +instance Applicative DecM where + pure = return + (<*>) = ap + instance Monad DecM where return a = D (\s -> Just (s,a)) (D m) >>= k = D (\s -> --- syb-0.4.3-orig/tests/Ext1.hs 2014-12-31 19:40:41.000000000 +1100 +++ syb-0.4.3/tests/Ext1.hs 2015-01-02 10:30:39.396517984 +1100 @@ -1,4 +1,5 @@ {-# OPTIONS -fglasgow-exts #-} +{-# LANGUAGE CPP #-} module Ext1 (tests) where @@ -11,8 +12,11 @@ import Test.HUnit import Data.Generics +#if MIN_VERSION_base(4,8,0) +import GHC.Base hiding(foldr) +#else import GHC.Base - +#endif -- Unsafe coerce unsafeCoerce :: a -> b