ocaml-containers/src/core/CCCanonical_sexp.mli
2024-05-13 20:57:53 -04:00

33 lines
760 B
OCaml

(* This file is free software, part of containers. See file "license" for more details. *)
(** Canonical S-expressions
See {{: https://en.wikipedia.org/wiki/Canonical_S-expressions} wikipedia}.
These S-expressions are binary safe.
@since 3.3
*)
type 'a or_error = ('a, string) result
type 'a gen = unit -> 'a option
module type SEXP = CCSexp_intf.BASIC_SEXP
module type S = CCSexp_intf.S0
(** {2 Parser and printer} *)
module Make (Sexp : SEXP) : S with type t = Sexp.t
(** {2 Basics} *)
type t =
[ `Atom of string
| `List of t list
]
(** A simple, structural representation of S-expressions.
Compatible with {!CCSexp}. *)
include S with type t := t
val equal : t -> t -> bool
val compare : t -> t -> int
val atom : string -> t