Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/e7fc5e2dfd1baf8ee4078a1215306a2473ea1005

>---------------------------------------------------------------

commit e7fc5e2dfd1baf8ee4078a1215306a2473ea1005
Author: Andres Loeh <[email protected]>
Date:   Sun Jun 5 11:28:09 2011 +0000

    added Progress instances

>---------------------------------------------------------------

 .../Distribution/Client/Dependency/Types.hs        |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency/Types.hs 
b/cabal-install/Distribution/Client/Dependency/Types.hs
index 16c5b85..23b7566 100644
--- a/cabal-install/Distribution/Client/Dependency/Types.hs
+++ b/cabal-install/Distribution/Client/Dependency/Types.hs
@@ -22,6 +22,12 @@ module Distribution.Client.Dependency.Types (
     foldProgress,
   ) where
 
+import Control.Applicative
+         ( Applicative(..), Alternative(..) )
+
+import Data.Monoid
+         ( Monoid(..) )
+
 import Distribution.Client.Types
          ( SourcePackage(..), InstalledPackage )
 import qualified Distribution.Client.InstallPlan as InstallPlan
@@ -139,3 +145,11 @@ instance Functor (Progress step fail) where
 instance Monad (Progress step fail) where
   return a = Done a
   p >>= f  = foldProgress Step Fail f p
+
+instance Applicative (Progress step fail) where
+  pure a  = Done a
+  p <*> x = foldProgress Step Fail (flip fmap x) p
+
+instance Monoid fail => Alternative (Progress step fail) where
+  empty   = Fail mempty
+  p <|> q = foldProgress Step (const q) Done p



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to