You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-haskell/dbus-core/files/dbus-core-0.9.3-ghc-7.10.patch

97 lines
2.9 KiB

diff --git a/hs/DBus/Connection/Authentication.hs b/hs/DBus/Connection/Authentication.hs
index b909a38..c33d311 100644
--- a/hs/DBus/Connection/Authentication.hs
+++ b/hs/DBus/Connection/Authentication.hs
@@ -25,3 +25,4 @@ module DBus.Connection.Authentication
import Prelude hiding (getLine, head)
-import Control.Monad (liftM)
+import Control.Applicative
+import Control.Monad
import qualified Data.ByteString
@@ -58,2 +59,9 @@ data Auth a = Auth
+instance Functor Auth where
+ fmap = liftM
+
+instance Applicative Auth where
+ pure = return
+ (<*>) = ap -- defined in Control.Monad
+
instance Monad Auth where
diff --git a/hs/DBus/Introspection.hs b/hs/DBus/Introspection.hs
index 96ff4a3..da82812 100644
--- a/hs/DBus/Introspection.hs
+++ b/hs/DBus/Introspection.hs
@@ -29,3 +29,4 @@ module DBus.Introspection
) where
-import Control.Monad ((>=>))
+import Control.Applicative
+import Control.Monad
import Control.Monad.ST (runST)
@@ -176,2 +177,9 @@ newtype XmlWriter a = XmlWriter { runXmlWriter :: Maybe (a, Text) }
+instance Functor XmlWriter where
+ fmap = liftM
+
+instance Applicative XmlWriter where
+ pure = return
+ (<*>) = ap -- defined in Control.Monad
+
instance Monad XmlWriter where
diff --git a/hs/DBus/Types/Internal.hs b/hs/DBus/Types/Internal.hs
index 7f5d9c5..7c73afe 100644
--- a/hs/DBus/Types/Internal.hs
+++ b/hs/DBus/Types/Internal.hs
@@ -5,2 +5,3 @@
{-# LANGUAGE IncoherentInstances #-}
+{-# LANGUAGE FlexibleContexts #-}
diff --git a/hs/DBus/Util/MonadError.hs b/hs/DBus/Util/MonadError.hs
index 33b51ed..ef01df2 100644
--- a/hs/DBus/Util/MonadError.hs
+++ b/hs/DBus/Util/MonadError.hs
@@ -23,2 +23,6 @@ module DBus.Util.MonadError
) where
+
+import Control.Applicative
+import Control.Monad
+
newtype ErrorM e a = ErrorM { runErrorM :: Either e a }
@@ -30,2 +34,6 @@ instance Functor (ErrorM e) where
+instance Applicative (ErrorM e) where
+ pure = return
+ (<*>) = ap -- defined in Control.Monad
+
instance Monad (ErrorM e) where
@@ -41,2 +49,9 @@ newtype ErrorT e m a = ErrorT { runErrorT :: m (Either e a) }
+instance Monad m => Functor (ErrorT e m) where
+ fmap = liftM
+
+instance Monad m => Applicative (ErrorT e m) where
+ pure = return
+ (<*>) = ap -- defined in Control.Monad
+
instance Monad m => Monad (ErrorT e m) where
diff --git a/hs/DBus/Wire/Internal.hs b/hs/DBus/Wire/Internal.hs
index b386eec..512ff1a 100644
--- a/hs/DBus/Wire/Internal.hs
+++ b/hs/DBus/Wire/Internal.hs
@@ -19,3 +19,4 @@
module DBus.Wire.Internal where
-import Control.Monad (liftM, when, unless)
+import Control.Applicative
+import Control.Monad hiding (void)
@@ -96,2 +97,9 @@ newtype Wire s a = Wire
+instance Functor (Wire s) where
+ fmap = liftM
+
+instance Applicative (Wire s) where
+ pure = return
+ (<*>) = ap -- defined in Control.Monad
+
instance Monad (Wire s) where