sig
  type ('conv_in, 'conv_out) t
  val ( ++ ) :
    ('c1, 'c2) Tws_prot.Unpickler.Spec.t ->
    ('c2, 'c3) Tws_prot.Unpickler.Spec.t ->
    ('c1, 'c3) Tws_prot.Unpickler.Spec.t
  val step : ('c1 -> 'c2) -> ('c1, 'c2) Tws_prot.Unpickler.Spec.t
  val empty : unit -> ('c, 'c) Tws_prot.Unpickler.Spec.t
  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.Unpickler.Spec.value
  val required : 'Tws_prot.Val_type.t -> 'Tws_prot.Unpickler.Spec.value
  val optional :
    ?none_on_default:Tws_prot.raw_tws ->
    'Tws_prot.Val_type.t -> 'a option Tws_prot.Unpickler.Spec.value
  val optional_with_default :
    default:'-> 'Tws_prot.Val_type.t -> 'Tws_prot.Unpickler.Spec.value
  val value :
    'Tws_prot.Unpickler.Spec.value ->
    name:string -> ('-> 'c, 'c) Tws_prot.Unpickler.Spec.t
  val capture_remaining_message :
    (Tws_prot.raw_tws Core.Std.Queue.t -> 'c, 'c) Tws_prot.Unpickler.Spec.t
  val fields_value :
    'Tws_prot.Unpickler.Spec.value ->
    ('c1, '-> 'c2) Tws_prot.Unpickler.Spec.t ->
    ('b, 'c) Fieldslib.Field.t -> ('c1, 'c2) Tws_prot.Unpickler.Spec.t
end