sig
  type t = [ `Prod | `Test ]
  val is_prod : Prod_or_test.t -> bool
  val is_test : Prod_or_test.t -> bool
  val of_prod_bool : bool -> Prod_or_test.t
  val of_test_bool : bool -> Prod_or_test.t
  val compare : Prod_or_test.t -> Prod_or_test.t -> int
  val bin_t : Prod_or_test.t Core.Std.Bin_prot.Type_class.t
  val bin_read_t : Prod_or_test.t Core.Std.Bin_prot.Read_ml.reader
  val bin_read_t_ : Prod_or_test.t Core.Std.Bin_prot.Unsafe_read_c.reader
  val bin_read_t__ :
    (int -> Prod_or_test.t) Core.Std.Bin_prot.Unsafe_read_c.reader
  val bin_reader_t : Prod_or_test.t Core.Std.Bin_prot.Type_class.reader
  val bin_size_t : Prod_or_test.t Core.Std.Bin_prot.Size.sizer
  val bin_write_t : Prod_or_test.t Core.Std.Bin_prot.Write_ml.writer
  val bin_write_t_ : Prod_or_test.t Core.Std.Bin_prot.Unsafe_write_c.writer
  val bin_writer_t : Prod_or_test.t Core.Std.Bin_prot.Type_class.writer
  val t_of_sexp : Sexplib.Sexp.t -> Prod_or_test.t
  val __t_of_sexp__ : Sexplib.Sexp.t -> Prod_or_test.t
  val sexp_of_t : Prod_or_test.t -> Sexplib.Sexp.t
end