lens-action-0.2.2: Monadic Getters and Folds

Copyright(C) 2012-2014 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell98

Control.Lens.Action.Internal

Contents

Description

 

Synopsis

Actions

class (Monad m, Functor f, Contravariant f) => Effective m r f | f -> m r where Source #

An Effective Functor ignores its argument and is isomorphic to a Monad wrapped around a value.

That said, the Monad is possibly rather unrelated to any Applicative structure.

Minimal complete definition

effective, ineffective

Methods

effective :: m r -> f a Source #

ineffective :: f a -> m r Source #

Instances

Monad m => Effective m r (Effect m r) Source # 

Methods

effective :: m r -> Effect m r a Source #

ineffective :: Effect m r a -> m r Source #

Effective m r f => Effective m r (AlongsideRight f b) Source # 

Methods

effective :: m r -> AlongsideRight f b a Source #

ineffective :: AlongsideRight f b a -> m r Source #

Effective m r f => Effective m r (AlongsideLeft f b) Source # 

Methods

effective :: m r -> AlongsideLeft f b a Source #

ineffective :: AlongsideLeft f b a -> m r Source #

Effective Identity r (Const * r) Source # 
Effective m r f => Effective m (Dual r) (Backwards * f) Source # 

Methods

effective :: m (Dual r) -> Backwards * f a Source #

ineffective :: Backwards * f a -> m (Dual r) Source #

newtype Effect m r a Source #

Wrap a monadic effect with a phantom type argument.

Constructors

Effect 

Fields

Instances

Monad m => Effective m r (Effect m r) Source # 

Methods

effective :: m r -> Effect m r a Source #

ineffective :: Effect m r a -> m r Source #

Functor (Effect m r) Source # 

Methods

fmap :: (a -> b) -> Effect m r a -> Effect m r b #

(<$) :: a -> Effect m r b -> Effect m r a #

(Monad m, Monoid r) => Applicative (Effect m r) Source # 

Methods

pure :: a -> Effect m r a #

(<*>) :: Effect m r (a -> b) -> Effect m r a -> Effect m r b #

(*>) :: Effect m r a -> Effect m r b -> Effect m r b #

(<*) :: Effect m r a -> Effect m r b -> Effect m r a #

Contravariant (Effect m r) Source # 

Methods

contramap :: (a -> b) -> Effect m r b -> Effect m r a #

(>$) :: b -> Effect m r b -> Effect m r a #

(Apply m, Semigroup r) => Apply (Effect m r) Source # 

Methods

(<.>) :: Effect m r (a -> b) -> Effect m r a -> Effect m r b #

(.>) :: Effect m r a -> Effect m r b -> Effect m r b #

(<.) :: Effect m r a -> Effect m r b -> Effect m r a #

(Apply m, Semigroup r) => Semigroup (Effect m r a) Source # 

Methods

(<>) :: Effect m r a -> Effect m r a -> Effect m r a #

sconcat :: NonEmpty (Effect m r a) -> Effect m r a #

stimes :: Integral b => b -> Effect m r a -> Effect m r a #

(Monad m, Monoid r) => Monoid (Effect m r a) Source # 

Methods

mempty :: Effect m r a #

mappend :: Effect m r a -> Effect m r a -> Effect m r a #

mconcat :: [Effect m r a] -> Effect m r a #