Data.Functor.Plus

semigroupoids-5.1: Semigroupoids: Category sans id

Copyright | (C) 2011-2015 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Data.Functor.Plus

Description

Synopsis

- class Alt f => Plus f where
- module Data.Functor.Alt

# Documentation

class Alt f => Plus f where #

Laws:

    zero <!> m = m
    m <!> zero = m

If extended to an `Alternative` then `zero` should equal `empty`.

Minimal complete definition

zero

Methods

zero :: f a #

Instances

Plus [] # |
Methods zero :: [a] #
Plus Maybe # |
Methods zero :: Maybe a #
Plus IO # |
Methods zero :: IO a #
Plus Option # |
Methods zero :: Option a #
Plus Seq # |
Methods zero :: Seq a #
Plus IntMap # |
Methods zero :: IntMap a #
MonadPlus m => Plus (WrappedMonad m) # |
Methods zero :: WrappedMonad m a #
Ord k => Plus (Map k) # |
Methods zero :: Map k a #
Plus f => Plus (Lift f) # |
Methods zero :: Lift f a #
(Bind f, Monad f) => Plus (MaybeT f) # |
Methods zero :: MaybeT f a #
(Apply f, Applicative f) => Plus (ListT f) # |
Methods zero :: ListT f a #
Alternative f => Plus (WrappedApplicative f) # |
Methods zero :: WrappedApplicative f a #
ArrowPlus a => Plus (WrappedArrow a b) # |
Methods zero :: WrappedArrow a b a #
Plus f => Plus (IdentityT * f) # |
Methods zero :: IdentityT * f a #
Plus f => Plus (Reverse * f) # |
Methods zero :: Reverse * f a #
Plus f => Plus (Backwards * f) # |
Methods zero :: Backwards * f a #
Plus f => Plus (WriterT w f) # |
Methods zero :: WriterT w f a #
Plus f => Plus (WriterT w f) # |
Methods zero :: WriterT w f a #
Plus f => Plus (StateT e f) # |
Methods zero :: StateT e f a #
Plus f => Plus (StateT e f) # |
Methods zero :: StateT e f a #
(Bind f, Monad f, Error e) => Plus (ErrorT e f) # |
Methods zero :: ErrorT e f a #
(Bind f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f) # |
Methods zero :: ExceptT e f a #
Plus f => Plus (Static f a) # |
Methods zero :: Static f a a #
(Plus f, Plus g) => Plus (Product * f g) # |
Methods zero :: Product * f g a #
Plus f => Plus (ReaderT * e f) # |
Methods zero :: ReaderT * e f a #
(Plus f, Functor g) => Plus (Compose * * f g) # |
Methods zero :: Compose * * f g a #
Plus f => Plus (RWST r w s f) # |
Methods zero :: RWST r w s f a #
Plus f => Plus (RWST r w s f) # |
Methods zero :: RWST r w s f a #

module Data.Functor.Alt