Or, if there are no such definitions, where would be a good place to add
them?
Petr
Dne 08/20/2013 06:55 PM, Petr Pudlák napsal(a):
Dear Haskellers,
are these monoids defined somewhere?
|import Control.Applicative
import Data.Monoid
newtype AppMonoid m a =AppMonoid (m a)
instance (Monoid a,Applicative m) =>Monoid (AppMonoid m a)where
mempty =AppMonoid $ pure mempty
mappend (AppMonoid x) (AppMonoid y) =AppMonoid $ mappend <$> x <*> y
-- With the () monoid for `a` this becames the monoid of effects.
newtype AltMonoid m a =AltMonoid (m a)
instance Alternative m =>Monoid (AltMonoid m a)where
mempty =AltMonoid empty
mappend (AltMonoid x) (AltMonoid y) =AltMonoid $ x <|> y|
(and similarly for Monad/MonadPlus, until they become subclasses of
Applicative?)
Best regards,
Petr
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe