mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-08 20:25:28 -05:00
33 lines
760 B
OCaml
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
|