HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulesemigroupoids-6.0.1Haskell2010

Data.Functor.Plus

  • 1 class
  • 2 values
classclass Alt f => Plus (f :: Type -> Type) where
#

Laws:

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

If extended to an Alternative then zero should equal empty.

Methods

Instances37Plus, …
  • Plus IntMapDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus SeqDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus FirstDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus LastDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus MaybeDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus IODefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus []Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Alternative f => Plus (WrappedApplicative f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • MonadPlus m => Plus (WrappedMonad m)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Ord k => Plus (Map k)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus ProxyDefined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus U1Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (Lift f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Functor f, Monad f) => Plus (MaybeT f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Hashable k, Eq k) => Plus (HashMap k)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • ArrowPlus a => Plus (WrappedArrow a b)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (Rec1 f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (Static f a)Defined in semigroupoids-6.0.1 · Data.Semigroupoid.Static
  • Plus f => Plus (Backwards f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (IdentityT f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (ReaderT e f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (StateT e f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (StateT e f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (WriterT w f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (WriterT w f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (WriterT w f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (Reverse f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Functor f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Monoid c => Plus (K1 i c)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Plus f, Plus g) => Plus (Product f g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Plus f, Plus g) => Plus (f :*: g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (M1 i c f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (RWST r w s f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (RWST r w s f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • Plus f => Plus (RWST r w s f)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Plus f, Functor g) => Plus (Compose f g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
  • (Plus f, Functor g) => Plus (f :.: g)Defined in semigroupoids-6.0.1 · Data.Functor.Plus
valuepsum :: (Foldable t, Plus f) => t (f a) -> f a
#

The sum of a collection of actions, generalizing concat.

Example1 expression
psum [Just "Hello", Nothing, Just "World"]Just "Hello"
valuegzero :: (Plus (Rep1 f), Generic1 f) => f a
#

Generic zero. Caveats:

  1. Will not compile if f is a sum type.

  2. Any types where the a does not appear must have a Monoid instance.