/caterwaul/List/functor/compactable

Copy path to clipboard

Source

let P =
https://prelude.dhall-lang.org/v20.1.0/package.dhall sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98

let cat = ../../Category/Cat/semigroupal

let vObject = Type

let Set =
../../Category/Monoidal/Cartesian/extractCategory
cat
vObject
Type
../../Category/Set/monoidal/cartesian

let v = Set

in { map =
λ(a : Type) →
λ(b : Type) →
λ(f : a → Optional b) →
λ(l : List a) →
List/fold
a
l
(List b)
( λ(x : a) →
λ(acc : List b) →
P.Optional.fold b (f x) (List b) (λ(y : b) → [ y ] # acc) acc
)
([] : List b)
}
: ../../Functor/Star/Type vObject Type v Set Optional List