sig   type 'a or_error = ('a, string) Result.result   type 'a sequence = ('-> unit) -> unit   type 'a gen = unit -> 'a option   type t = [ `Atom of string | `List of CCSexp.t list ]   type sexp = CCSexp.t   val equal : CCSexp.t -> CCSexp.t -> bool   val compare : CCSexp.t -> CCSexp.t -> int   val hash : CCSexp.t -> int   val atom : string -> CCSexp.t   val of_int : int -> CCSexp.t   val of_bool : bool -> CCSexp.t   val of_list : CCSexp.t list -> CCSexp.t   val of_rev_list : CCSexp.t list -> CCSexp.t   val of_float : float -> CCSexp.t   val of_unit : CCSexp.t   val of_pair : CCSexp.t * CCSexp.t -> CCSexp.t   val of_triple : CCSexp.t * CCSexp.t * CCSexp.t -> CCSexp.t   val of_quad : CCSexp.t * CCSexp.t * CCSexp.t * CCSexp.t -> CCSexp.t   val of_variant : string -> CCSexp.t list -> CCSexp.t   val of_field : string -> CCSexp.t -> CCSexp.t   val of_record : (string * CCSexp.t) list -> CCSexp.t   val to_buf : Buffer.t -> CCSexp.t -> unit   val to_string : CCSexp.t -> string   val to_file : string -> CCSexp.t -> unit   val to_file_seq : string -> CCSexp.t CCSexp.sequence -> unit   val to_chan : Pervasives.out_channel -> CCSexp.t -> unit   val pp : Format.formatter -> CCSexp.t -> unit   val pp_noindent : Format.formatter -> CCSexp.t -> unit   type 'a parse_result = Yield of '| Fail of string | End   module Decoder :     sig       type t       val of_lexbuf : Lexing.lexbuf -> CCSexp.Decoder.t       val next : CCSexp.Decoder.t -> CCSexp.sexp CCSexp.parse_result     end   val parse_string : string -> CCSexp.t CCSexp.or_error   val parse_chan : Pervasives.in_channel -> CCSexp.t CCSexp.or_error   val parse_chan_gen :     Pervasives.in_channel -> CCSexp.t CCSexp.or_error CCSexp.gen   val parse_chan_list :     Pervasives.in_channel -> CCSexp.t list CCSexp.or_error   val parse_file : string -> CCSexp.t CCSexp.or_error   val parse_file_list : string -> CCSexp.t list CCSexp.or_error end