sig
module Z :
sig
type 'a t = [ `Eof | `Ok of 'a ]
val __t_of_sexp__ : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val bin_size_t : ('a -> int) -> [> `Ok of 'a ] -> int
val bin_write_t :
(Core.Std.Bin_prot.Common.buf ->
pos:Core.Std.Bin_prot.Common.pos ->
'a -> Core.Std.Bin_prot.Common.pos) ->
Core.Std.Bin_prot.Common.buf ->
pos:Core.Std.Bin_prot.Common.pos ->
[< `Eof | `Ok of 'a ] -> Core.Std.Bin_prot.Common.pos
val bin_writer_t :
'a Core.Std.Bin_prot.Type_class.writer ->
[< `Eof | `Ok of 'a > `Ok ] Core.Std.Bin_prot.Type_class.writer
val __bin_read_t__ :
('a -> pos_ref:'b -> 'c) ->
'a -> pos_ref:'b -> int -> [> `Eof | `Ok of 'c ]
val bin_read_t :
(Core.Std.Bin_prot.Common.buf ->
pos_ref:Core.Std.Bin_prot.Common.pos_ref -> 'a) ->
Core.Std.Bin_prot.Common.buf ->
pos_ref:Core.Std.Bin_prot.Common.pos_ref -> [> `Eof | `Ok of 'a ]
val bin_reader_t :
'a Core.Std.Bin_prot.Type_class.reader ->
[> `Eof | `Ok of 'a ] Core.Std.Bin_prot.Type_class.reader
val bin_t :
'a Core.Std.Bin_prot.Type_class.t ->
[ `Eof | `Ok of 'a ] Core.Std.Bin_prot.Type_class.t
val bind : [< `Eof | `Ok of 'a ] -> ('a -> ([> `Eof ] as 'b)) -> 'b
val return : 'a -> [> `Ok of 'a ]
end
type 'a t = [ `Eof | `Ok of 'a ]
val __t_of_sexp__ : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
val bin_size_t : ('a -> int) -> [> `Ok of 'a ] -> int
val bin_write_t :
(Core.Std.Bin_prot.Common.buf ->
pos:Core.Std.Bin_prot.Common.pos -> 'a -> Core.Std.Bin_prot.Common.pos) ->
Core.Std.Bin_prot.Common.buf ->
pos:Core.Std.Bin_prot.Common.pos ->
[< `Eof | `Ok of 'a ] -> Core.Std.Bin_prot.Common.pos
val bin_writer_t :
'a Core.Std.Bin_prot.Type_class.writer ->
[< `Eof | `Ok of 'a > `Ok ] Core.Std.Bin_prot.Type_class.writer
val __bin_read_t__ :
('a -> pos_ref:'b -> 'c) ->
'a -> pos_ref:'b -> int -> [> `Eof | `Ok of 'c ]
val bin_read_t :
(Core.Std.Bin_prot.Common.buf ->
pos_ref:Core.Std.Bin_prot.Common.pos_ref -> 'a) ->
Core.Std.Bin_prot.Common.buf ->
pos_ref:Core.Std.Bin_prot.Common.pos_ref -> [> `Eof | `Ok of 'a ]
val bin_reader_t :
'a Core.Std.Bin_prot.Type_class.reader ->
[> `Eof | `Ok of 'a ] Core.Std.Bin_prot.Type_class.reader
val bin_t :
'a Core.Std.Bin_prot.Type_class.t ->
[ `Eof | `Ok of 'a ] Core.Std.Bin_prot.Type_class.t
val bind : [< `Eof | `Ok of 'a ] -> ('a -> ([> `Eof ] as 'b)) -> 'b
val return : 'a -> [> `Ok of 'a ]
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t
module Monad_infix :
sig
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t
end
val bind : 'a t -> ('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val map : 'a t -> f:('a -> 'b) -> 'b t
val join : 'a t t -> 'a t
val ignore : 'a t -> unit t
val all : 'a t list -> 'a list t
val all_ignore : unit t list -> unit t
end