functor (Random_state : sig val state : Core.Std.Random.State.t end->
  sig
    type ('a, 'b) t = ('a * 'b) Core.Std.Sexp_maybe.t
    val sexp_of_t :
      ('-> Sexplib.Sexp.t) ->
      ('-> Sexplib.Sexp.t) -> ('a, 'b) t -> Sexplib.Sexp.t
    val t_of_sexp :
      (Sexplib.Sexp.t -> 'a) ->
      (Sexplib.Sexp.t -> 'b) -> Sexplib.Sexp.t -> ('a, 'b) t
    val bin_size_t : ('a, 'b, ('a, 'b) t) Bin_prot.Size.sizer2
    val bin_write_t : ('a, 'b, ('a, 'b) t) Bin_prot.Map_to_safe.writer2
    val bin_write_t_ : ('a, 'b, ('a, 'b) t) Bin_prot.Unsafe_write_c.writer2
    val bin_read_t : ('a, 'b, ('a, 'b) t) Bin_prot.Map_to_safe.reader2
    val bin_read_t_ : ('a, 'b, ('a, 'b) t) Bin_prot.Unsafe_read_c.reader2
    val bin_read_t__ :
      ('a, 'b, int -> ('a, 'b) t) Bin_prot.Unsafe_read_c.reader2
    val bin_writer_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.writer
    val bin_reader_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.reader
    val bin_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.t
    val final_pass :
      Core.Std.Sexp.t -> use_sexp_maybe:bool -> Core.Std.Sexp.t
  end