pub fn compose(
t1: fn(fn(a, b) -> a) -> fn(a, c) -> a,
t2: fn(fn(a, d) -> a) -> fn(a, b) -> a,
) -> fn(fn(a, d) -> a) -> fn(a, c) -> a
pub fn filtering(
pred: fn(a) -> Bool,
) -> fn(fn(b, a) -> b) -> fn(b, a) -> b
pub fn mapping(
f: fn(a) -> b,
) -> fn(fn(c, b) -> c) -> fn(c, a) -> c
pub fn parallel_reduce(
data data: List(a),
initial initial: b,
transducer transducer: fn(fn(b, c) -> b) -> fn(b, a) -> b,
reducer reducer: fn(b, c) -> b,
combiner combiner: fn(b, b) -> b,
neutral_element neutral_element: fn() -> b,
num_workers num_workers: Int,
) -> b
pub fn reduce(
data data: List(a),
initial initial: b,
transducer transducer: fn(fn(b, c) -> b) -> fn(b, a) -> b,
reduce reducer: fn(b, c) -> b,
) -> b