val arr : ('input -> 'result) -> ('input, 'result) tval first : ('input, 'result) t -> ('input * 'a, 'result * 'a) tval second : ('input, 'result) t -> ('a * 'input, 'a * 'result) tval split : ('i1, 'r1) t -> ('i2, 'r2) t -> ('i1 * 'i2, 'r1 * 'r2) tval extend_first : ('input, 'result) t -> ('input, 'result * 'input) tval extend_second : ('input, 'result) t -> ('input, 'input * 'result) tval (***) : ('i1, 'r1) t -> ('i2, 'r2) t -> ('i1 * 'i2, 'r1 * 'r2) tval fanout : ('input, 'r1) t -> ('input, 'r2) t -> ('input, 'r1 * 'r2) tval (&&&) : ('input, 'r1) t -> ('input, 'r2) t -> ('input, 'r1 * 'r2) tval (^>>) : ('i1 -> 'i2) -> ('i2, 'result) t -> ('i1, 'result) tval (>>^) : ('input, 'r1) t -> ('r1 -> 'r2) -> ('input, 'r2) tval partial_compose_first : ('input, 'shared * 'output1) t -> ('input * 'shared, 'output2) t -> ('input, 'output1 * 'output2) tval pipe : ('input, 'r1) t -> into:('intermediate, 'r2) t -> via:('input -> 'r1 -> 'intermediate) -> finalize:('input -> 'r1 -> 'r2 -> 'r3) -> ('input, 'r3) t