Zafu/Abstract/Semigroupsource code:
public dependencies: Zafu/Abstract/Eq
Semigroupcombine, combine_all_option, combine_fn, combine_map_all, combine_map_all_option,
combine_n, combine_n_positive_from_combine,
combine_tree_option,
first, intercalate, last, laws_Semigroup, maybe_combine_left, maybe_combine_right,
reverse, semigroup_from_combine,
semigroup_specializedSemigroup[a]type Semigroup[a: *]
combinereferences: Semigroup
def combine[a](inst: Semigroup[a], left: a, right: a) -> a
combine_all_optionreferences: List, Option, Semigroup
def combine_all_option[a](inst: Semigroup[a], items: List[a]) -> Option[a]
combine_fnreferences: Semigroup
def combine_fn[a](inst: Semigroup[a]) -> (a, a) -> a
combine_map_alldef combine_map_all[a, b](inst: Semigroup[a], head: b, tail: List[b], fn: b -> a) -> a
combine_map_all_optionreferences: List, Option, Semigroup
def combine_map_all_option[a, b](inst: Semigroup[a], items: List[b], fn: b -> a) -> Option[a]
combine_nreferences: Int, Option, Semigroup
def combine_n[a](inst: Semigroup[a], value: a, n: Int) -> Option[a]
combine_n_positive_from_combineDefault repeated-combine implementation with logarithmic combine count.
references: Int
def combine_n_positive_from_combine[a](combine_fn: (a, a) -> a, value: a, n: Int) -> a
combine_tree_optioncombine this list by forming a balanced tree. Useful for combine operations that don't decrease size
def combine_tree_option[a](combine: (a, a) -> a, items: List[a]) -> Option[a]
firstreferences: Semigroup
first: forall a: *. Semigroup[a]
intercalatereferences: Semigroup
def intercalate[a](inst: Semigroup[a], middle: a) -> Semigroup[a]
lastreferences: Semigroup
last: forall a: *. Semigroup[a]
laws_Semigroupreferences: Semigroup, Test, Zafu/Abstract/Eq::Eq
def laws_Semigroup[a
](inst: Semigroup[a], eq_inst: Zafu/Abstract/Eq::Eq[a], x: a, y: a, z: a) -> Test
maybe_combine_leftdef maybe_combine_left[a](inst: Semigroup[a], left_opt: Option[a], right: a) -> a
maybe_combine_rightdef maybe_combine_right[a](inst: Semigroup[a], left: a, right_opt: Option[a]) -> a
reversereferences: Semigroup
def reverse[a](inst: Semigroup[a]) -> Semigroup[a]
semigroup_from_combineConstructor from combine with helper operations derived.
references: Semigroup
def semigroup_from_combine[a](combine_fn: (a, a) -> a) -> Semigroup[a]
semigroup_specializedConstructor for specialized implementations.
references: Int, List, Semigroup
def semigroup_specialized[a](
combine_fn: (a, a) -> a,
combine_n_positive_fn: (a, Int) -> a,
combine_map_all_fn: forall b: *. (b, List[b], b -> a) -> a
) -> Semigroup[a]