type ('f, 't, 'is) kind = | Exn : ('a, 'a, exn) kind |
| Opt : ('a, 'a option, opt) kind |
| Res : ('a, ('a, error) Stdlib.result, res) kind |
type ('k, 'a, 'b) t = {to_ : 'a -> 'rb; |
of_ : 'b -> 'ra; |
kd : 'kd; |
} constraint 'k = < reta : ('a, 'ra, 'kd) kind; retb : ('b, 'rb, 'kd) kind; >type ('a, 'b) topt = (< reta : ('a, 'a option, opt) kind; retb : ('b, 'b option, opt) kind; >, 'a, 'b) ttype ('a, 'b) tres = (< reta : ('a, ('a, error) Stdlib.result, res) kind; retb : ('b, ('b, error) Stdlib.result, res) kind; >, 'a, 'b) tval make : ('a, 'ra, 'kd) kind -> ('b, 'rb, 'kd) kind -> fwd:('a -> 'rb) -> bwd:('b -> 'ra) -> (< reta : ('a, 'ra, 'kd) kind; retb : ('b, 'rb, 'kd) kind; >, 'a, 'b) tval make_exn : fwd:('a -> 'b) -> bwd:('b -> 'a) -> ('a, 'b) texnval make_opt : fwd:('a -> 'b option) -> bwd:('b -> 'a option) -> ('a, 'b) toptval make_res : fwd:('a -> ('b, error) Stdlib.result) -> bwd:('b -> ('a, error) Stdlib.result) -> ('a, 'b) tresval flip : (< reta : ('a, 'ra, 'kd) kind; retb : ('b, 'rb, 'kd) kind; >, 'a, 'b) t -> (< reta : ('b, 'rb, 'kd) kind; retb : ('a, 'ra, 'kd) kind; >, 'b, 'a) tval product : (< reta : ('a, 'ra, 'kd) kind; retb : ('b, 'rb, 'kd) kind; >, 'a, 'b) t -> (< reta : ('c, 'rc, 'kd) kind; retb : ('d, 'rd, 'kd) kind; >, 'c, 'd) t -> (< reta : ('a * 'c, 'ra * 'rc, 'kd) kind; retb : ('b * 'd, 'rb * 'rd, 'kd) kind; >, 'a * 'c, 'b * 'd) tval obj3 : (('a * 'b) * 'c, 'a * 'b * 'c) texnval obj4 : ((('a * 'b) * 'c) * 'd, 'a * 'b * 'c * 'd) texnval obj5 : (((('a * 'b) * 'c) * 'd) * 'e, 'a * 'b * 'c * 'd * 'e) texnval obj6 : ((((('a * 'b) * 'c) * 'd) * 'e) * 'f, 'a * 'b * 'c * 'd * 'e * 'f) texnmodule Exn : sig ... end