dep-t-0.6.8.0: Dependency injection for records-of-functions.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Dep.Injects

Description

Inject values into accumulators.

Synopsis

General-purpose injector.

class Injects r_ (m :: Type -> Type) (accum :: Type) | accum -> m where Source #

Mirror image of Has.

Can be useful with AccumConstructor to register particular monoidal values into a "wider" monoidal value which is accumulated accross all components.

Methods

inject :: r_ m -> accum Source #

Given a value parameterized by the accumulator's effect monad m, produce an accumulator.

Instances

Instances details
Monoid a => Injects r_ m (a, r_ m) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, r_ m) Source #

Monoid b => Injects r_ m (r_ m, b) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (r_ m, b) Source #

(Monoid a, Monoid b) => Injects r_ m (a, b, r_ m) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, b, r_ m) Source #

(Monoid a, Monoid c) => Injects r_ m (a, r_ m, c) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, r_ m, c) Source #

(Monoid b, Monoid c) => Injects r_ m (r_ m, b, c) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (r_ m, b, c) Source #

(Monoid a, Monoid b, Monoid c) => Injects r_ m (a, b, c, r_ m) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, b, c, r_ m) Source #

(Monoid a, Monoid b, Monoid d) => Injects r_ m (a, b, r_ m, d) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, b, r_ m, d) Source #

(Monoid a, Monoid c, Monoid d) => Injects r_ m (a, r_ m, c, d) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (a, r_ m, c, d) Source #

(Monoid b, Monoid c, Monoid d) => Injects r_ m (r_ m, b, c, d) Source # 
Instance details

Defined in Dep.Injects

Methods

inject :: r_ m -> (r_ m, b, c, d) Source #

type family InjectsAll rs_ m e where ... Source #

Mirror image of HasAll.

Equations

InjectsAll '[] m e = () 
InjectsAll (r_ ': rs_) m e = (Injects r_ m e, InjectsAll rs_ m e)