sig
type 'a or_error = ('a, string) Result.result
type 'a sequence = ('a -> 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 'a | 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