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

Reply via email to