sig
  type 'a conv = CCSexp.t -> 'a option
  val map_opt : ('-> 'b option) -> 'a list -> 'b list option
  val list_any : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a option
  val list_all : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a list
  val to_int : int CCSexp.Traverse.conv
  val to_string : string CCSexp.Traverse.conv
  val to_bool : bool CCSexp.Traverse.conv
  val to_float : float CCSexp.Traverse.conv
  val to_list : CCSexp.t list CCSexp.Traverse.conv
  val to_list_with : (CCSexp.t -> 'a option) -> 'a list CCSexp.Traverse.conv
  val to_pair : (CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
  val to_pair_with :
    'CCSexp.Traverse.conv ->
    'CCSexp.Traverse.conv -> ('a * 'b) CCSexp.Traverse.conv
  val to_triple : (CCSexp.t * CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
  val to_triple_with :
    'CCSexp.Traverse.conv ->
    'CCSexp.Traverse.conv ->
    'CCSexp.Traverse.conv -> ('a * 'b * 'c) CCSexp.Traverse.conv
  val get_field : string -> CCSexp.t CCSexp.Traverse.conv
  val field : string -> 'CCSexp.Traverse.conv -> 'CCSexp.Traverse.conv
  val get_variant :
    (string * (CCSexp.t list -> 'a option)) list -> 'CCSexp.Traverse.conv
  val field_list :
    string -> (CCSexp.t list -> 'a option) -> 'CCSexp.Traverse.conv
  val ( >>= ) : 'a option -> ('-> 'b option) -> 'b option
  val ( >|= ) : 'a option -> ('-> 'b) -> 'b option
  val return : '-> 'a option
  val get_exn : 'a option -> 'a
end