package GuaCaml

  1. Overview
  2. Docs
type (!'a, !'b) o3 = ('a -> 'b) * ('b -> 'a)
type (!'a, !'s) o3s = ('a -> 's -> 's) * ('s -> 'a * 's)
val id : ('a -> 'a) * ('b -> 'b)
val o3_check : (('a -> 'b) * ('b -> 'a)) -> ('a -> 'b) * ('b -> 'a)
val o3s_check : (('a -> 'b -> 'c) * ('c -> 'a * 'b)) -> ('a -> 'b -> 'c) * ('c -> 'a * 'b)
val o3_o3 : (('a -> 'b) * ('c -> 'd)) -> (('b -> 'e) * ('f -> 'c)) -> ('a -> 'e) * ('f -> 'd)
val (%>>) : (('a -> 'b) * ('c -> 'd)) -> (('b -> 'e) * ('f -> 'c)) -> ('a -> 'e) * ('f -> 'd)
val o3_o3s : ('a, 'b) o3 -> ('b, 's) o3s -> ('a, 's) o3s
val (+>>) : ('a, 'b) o3 -> ('b, 'c) o3s -> ('a, 'c) o3s
val o3s_o3 : (('a -> 'b -> 'c) * ('b -> 'd * 'c)) -> (('c -> 'e) * ('f -> 'b)) -> ('a -> 'f -> 'e) * ('f -> 'd * 'e)
val (>>+) : (('a -> 'b -> 'c) * ('b -> 'd * 'c)) -> (('c -> 'e) * ('f -> 'b)) -> ('a -> 'f -> 'e) * ('f -> 'd * 'e)
val cat : (('a -> 'b) * ('c -> 'd)) -> (('e -> 'f) * ('g -> 'h)) -> (('a * 'e) -> 'b * 'f) * (('c * 'g) -> 'd * 'h)
val (%*) : (('a -> 'b) * ('c -> 'd)) -> (('e -> 'f) * ('g -> 'h)) -> (('a * 'e) -> 'b * 'f) * (('c * 'g) -> 'd * 'h)
val (+*) : (('a -> 'b -> 'c) * ('d -> 'e * 'f)) -> (('g -> 'h -> 'b) * ('f -> 'i * 'j)) -> (('a * 'g) -> 'h -> 'c) * ('d -> ('e * 'i) * 'j)
val pair : ((('a -> 'b -> 'c) * ('d -> 'e * 'f)) * (('g -> 'h -> 'b) * ('f -> 'i * 'j))) -> (('a * 'g) -> 'h -> 'c) * ('d -> ('e * 'i) * 'j)
val trio : (('a, 's) o3s * ('b, 's) o3s * ('c, 's) o3s) -> ('a * 'b * 'c, 's) o3s
val closure : 's -> ('a, 's) o3s -> ('a, 's) o3