Compose
Lean: Hale.Base.Compose | Haskell: Data.Functor.Compose
Overview
Composition of functors/applicatives. Compose F G a wraps F (G a), allowing two functors to be composed into a single functor (or two applicatives into a single applicative).
API Mapping
| Lean | Haskell | Kind |
|---|---|---|
Compose | Compose | Type |
getCompose | getCompose | Accessor |
Instances
Functor (Compose F G)(requiresFunctor F,Functor G)Pure (Compose F G)(requiresApplicative F,Applicative G)Seq (Compose F G)(requiresApplicative F,Applicative G)Applicative (Compose F G)(requiresApplicative F,Applicative G)
Proofs & Guarantees
map_id—Functor.map id = id(with lawful functors)map_comp—Functor.map (f . g) = Functor.map f . Functor.map g(with lawful functors)
Example
-- Compose List and Option into a single functor
Compose.mk [some 1, none, some 3]
-- : Compose List Option Nat