sig
  type 'a t
  val empty : unit -> [ `Args ] Tws_prot.Pickler.Spec.t
  val wrap :
    'Tws_prot.Pickler.Spec.t -> ('-> 'a) -> 'Tws_prot.Pickler.Spec.t
  val ( ++ ) :
    'Tws_prot.Pickler.Spec.t ->
    'Tws_prot.Pickler.Spec.t -> ('a * 'b) Tws_prot.Pickler.Spec.t
  val ( $ ) : '-> '-> 'a * 'b
  val unit : unit Tws_prot.Val_type.t
  val string : string Tws_prot.Val_type.t
  val int : int Tws_prot.Val_type.t
  val int64 : int64 Tws_prot.Val_type.t
  val float : float Tws_prot.Val_type.t
  val bool : bool Tws_prot.Val_type.t
  val bools : bool Tws_prot.Val_type.t
  val stamp : Core.Std.Time.t Tws_prot.Val_type.t
  val time : Core.Std.Time.t Tws_prot.Val_type.t
  val date : Core.Std.Date.t Tws_prot.Val_type.t
  val zone : Core.Std.Time.Zone.t Tws_prot.Val_type.t
  type 'a value
  val sequence :
    ?sep:char ->
    'Tws_prot.Val_type.t -> 'a list Tws_prot.Pickler.Spec.value
  val required : 'Tws_prot.Val_type.t -> 'Tws_prot.Pickler.Spec.value
  val optional :
    ?default_on_none:Tws_prot.raw_tws ->
    'Tws_prot.Val_type.t -> 'a option Tws_prot.Pickler.Spec.value
  val skipped_if_none :
    'Tws_prot.Val_type.t -> 'a option Tws_prot.Pickler.Spec.value
  val skipped : 'Tws_prot.Pickler.Spec.value
  val tws_data : Tws_prot.raw_tws Tws_prot.Pickler.Spec.value
  val value : 'Tws_prot.Pickler.Spec.value -> 'Tws_prot.Pickler.Spec.t
  val fields_value :
    'Tws_prot.Pickler.Spec.value ->
    'accum Tws_prot.Pickler.Spec.t ->
    ('b, 'c) Core.Std.Field.t -> ('accum * 'a) Tws_prot.Pickler.Spec.t
end