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
