sig
  type 'a t
  val of_typerep :
    'Typerep_lib.Std.Typerep.t -> 'Type_immediacy.Sometimes.t option
  val int_as_value : 'Type_immediacy.Sometimes.t -> int -> 'a option
  val int_as_value_exn : 'Type_immediacy.Sometimes.t -> int -> 'a
  val int_is_value : 'Type_immediacy.Sometimes.t -> int -> bool
  val value_as_int : 'Type_immediacy.Sometimes.t -> '-> int option
  val value_as_int_exn : 'Type_immediacy.Sometimes.t -> '-> int
  val value_is_int : 'Type_immediacy.Sometimes.t -> '-> bool
  module For_all_parameters_S1 :
    functor (X : Typerep_lib.Std.Typerepable.S1->
      sig val witness : unit -> 'X.t Type_immediacy.Sometimes.t end
  module For_all_parameters_S2 :
    functor (X : Typerep_lib.Std.Typerepable.S2->
      sig val witness : unit -> ('a, 'b) X.t Type_immediacy.Sometimes.t end
  module For_all_parameters_S3 :
    functor (X : Typerep_lib.Std.Typerepable.S3->
      sig
        val witness : unit -> ('a, 'b, 'c) X.t Type_immediacy.Sometimes.t
      end
  module For_all_parameters_S4 :
    functor (X : Typerep_lib.Std.Typerepable.S4->
      sig
        val witness : unit -> ('a, 'b, 'c, 'd) X.t Type_immediacy.Sometimes.t
      end
  module For_all_parameters_S5 :
    functor (X : Typerep_lib.Std.Typerepable.S5->
      sig
        val witness :
          unit -> ('a, 'b, 'c, 'd, 'e) X.t Type_immediacy.Sometimes.t
      end
  val option : 'a option Type_immediacy.Sometimes.t
  val list : 'a list Type_immediacy.Sometimes.t
end