Module Data.Compose

Composition of two applicative functors f and g such that the type f (g a) can itself be treated as applicative functor.

Imports

Table of Content

Definitions

data Compose f g a

Constructors

Compose {run ∷ f (g a)}

Member Functions

runCompose α β γ → α (β γ)

access field run

compose ∷ f (g a) → Compose f g a

Instances

instance (Applicative f, Applicative g) ⇒ Applicative (Compose f g)

Member Functions

*> ∷ (Applicative β, Applicative α) ⇒ Compose β α γCompose β α δCompose β α δ
infixl  4

inherited from Applicative.*>

<* ∷ (Applicative β, Applicative α) ⇒ Compose β α γCompose β α δCompose β α γ
infixl  4

inherited from Applicative.<*

<*> ∷ (Applicative β, Applicative α) ⇒ Compose β α (γ→δ)Compose β α γCompose β α δ
infixl  4
pure ∷ (Applicative β, Applicative α) ⇒ γ → Compose β α γ
instance (Functor f, Functor g) ⇒ Functor (Compose f g)

Member Functions

fmap ∷ (Functor β, Functor α) ⇒ (γ → δ) → Compose β α γCompose β α δ
infixl  4

Functions and Values by Type

α → Bool

Compose.has$run

Compose α β γ → α (β γ)

Compose.run

f (g a) → Compose f g a

compose

f (g a) → Compose f g a

Compose.Compose

(Applicative β, Applicative α) ⇒ γ → Compose β α γ

Applicative_Compose.pure

(Applicative β, Applicative α) ⇒ Compose β α (γ→δ) → Compose β α γ → Compose β α δ

Applicative_Compose.<*>

(Applicative β, Applicative α) ⇒ Compose β α γ → Compose β α δ → Compose β α γ

Applicative_Compose.<*

(Applicative β, Applicative α) ⇒ Compose β α γ → Compose β α δ → Compose β α δ

Applicative_Compose.*>

(Functor β, Functor α) ⇒ (γ → δ) → Compose β α γ → Compose β α δ

Functor_Compose.fmap

Compose α β γ → (α (β γ)→δ (ε ζ)) → Compose δ ε ζ

Compose.chg$run

Compose α β γ → δ (ε ζ) → Compose δ ε ζ

Compose.upd$run

Valid HTML 4.01 Strict