Zafu/Abstract/Traverse

Zafu/Abstract/Traverse

source code:

public dependencies: Zafu/Abstract/Applicative, Zafu/Abstract/Eq, Zafu/Abstract/Foldable

Index

Types

Traverse[f]

type Traverse[f: * -> *]

Values

laws_Traverse

references: Option, Test, Traverse, Unit, Zafu/Abstract/Eq::Eq

def laws_Traverse[a: * -> *, b, c, d](
    inst: Traverse[a],
    eq_fa: Zafu/Abstract/Eq::Eq[a[b]],
    eq_fc: Zafu/Abstract/Eq::Eq[a[c]],
    eq_option_fb: Zafu/Abstract/Eq::Eq[Option[a[d]]],
    eq_option_unit: Zafu/Abstract/Eq::Eq[Option[()]],
    eq_item: Zafu/Abstract/Eq::Eq[b],
    fa: a[b],
    fn_ab: b -> d,
    fn_bc: d -> c,
    fn_aob: b -> Option[d]
) -> Test

map

references: Traverse

def map[a: * -> *, b, c](fa: a[b], inst: Traverse[a], fn: b -> c) -> a[c]

sequence

references: Traverse, Zafu/Abstract/Applicative::Applicative

def sequence[a: * -> *,
    b: * -> *,
    c](fga: a[b[c]], inst: Traverse[a], app: Zafu/Abstract/Applicative::Applicative[b]) -> b[a[c]]

traverse

references: Traverse, Zafu/Abstract/Applicative::Applicative

def traverse[a: * -> *,
    b,
    c: * -> *,
    d
](fa: a[b], inst: Traverse[a], app: Zafu/Abstract/Applicative::Applicative[c], fn: b -> c[d]) -> c[a[d]]

traverse_balanced_List

Traverse a list by first building a balanced pure tree, keeping applicative depth logarithmic.

references: List, Zafu/Abstract/Applicative::Applicative

def traverse_balanced_List[a,
    b: * -> *,
    c](items: List[a], app: Zafu/Abstract/Applicative::Applicative[b], fn: a -> b[c]) -> b[List[c]]

traverse_from_traverse

references: Traverse, Zafu/Abstract/Applicative::Applicative, Zafu/Abstract/Foldable::Foldable

def traverse_from_traverse[a: * -> *](
    traverse_fn: forall b: *, c: * -> *, d: *. (a[b], Zafu/Abstract/Applicative::Applicative[c], b -> c[d]) -> c[a[d]],
    foldable_inst: Zafu/Abstract/Foldable::Foldable[a]
) -> Traverse[a]

traverse_from_traverse_map

references: Traverse, Zafu/Abstract/Applicative::Applicative, Zafu/Abstract/Foldable::Foldable

def traverse_from_traverse_map[a: * -> *](
    traverse_fn: forall b: *, c: * -> *, d: *. (a[b], Zafu/Abstract/Applicative::Applicative[c], b -> c[d]) -> c[a[d]],
    map_fn: forall b: *, c: *. (a[b], b -> c) -> a[c],
    foldable_inst: Zafu/Abstract/Foldable::Foldable[a]
) -> Traverse[a]

traverse_specialized

references: Traverse, Zafu/Abstract/Applicative::Applicative, Zafu/Abstract/Foldable::Foldable

def traverse_specialized[a: * -> *](
    traverse_fn: forall b: *, c: * -> *, d: *. (a[b], Zafu/Abstract/Applicative::Applicative[c], b -> c[d]) -> c[a[d]],
    map_fn: forall b: *, c: *. (a[b], b -> c) -> a[c],
    foldable_inst: Zafu/Abstract/Foldable::Foldable[a]
) -> Traverse[a]

traverse_to_foldable

references: Traverse, Zafu/Abstract/Foldable::Foldable

def traverse_to_foldable[a: * -> *](inst: Traverse[a]) -> Zafu/Abstract/Foldable::Foldable[a]