module type S = sig ... end
include S
type ('a, 'b) bijection = {
to_ : 'a -> 'b;
from : 'b -> 'a;
}
Bijection record
Bijection inversion
val flip : ( 'a, 'b ) bijection -> ( 'b, 'a ) bijection
val (%) : ( 'a, 'b ) bijection -> ( 'c, 'a ) bijection -> ( 'c, 'b ) bijection
Bijection composition