sexp_macro

Sexp macros
IN THIS PACKAGE
Module Sexp_macro
module Blocking : sig ... end

The load... functions of this module mirror the corresponding functions of the Sexp module except that they do macro-expansion in the loaded file and may throw additional exceptions.

type 'a conv = [
| `Result of 'a
| `Error of exn * Sexplib.Sexp.t
]
val sexp_of_conv : ( 'a -> Sexplib.Sexp.t ) -> 'a conv -> Sexplib.Sexp.t
type 'a annot_conv = [ `Result of 'a | `Error of exn * Sexplib.Sexp.Annotated.t ] as 'body constraint 'body = 'a Sexplib.Sexp.Annotated.conv
val sexp_of_annot_conv : ( 'a -> Sexplib.Sexp.t ) -> 'a annot_conv -> Sexplib.Sexp.t
val expand_local_macros : Sexplib.Sexp.t list -> Sexplib.Sexp.t list conv

expand_local_macros sexps takes a list of sexps and performs macro-expansion on them, except that an error will be returned if an :include macro is found.

module type Sexp_loader = sig ... end

A version of load_sexps that is functorized with respect to the functions that load the sexps from files and the corresponding monad.

module Loader (S : Sexp_loader) : sig ... end
val add_error_location : string -> exn -> exn
type ('sexp, 'a, 'b) load = ?allow_includes:bool -> string -> ( 'sexp -> 'a ) -> 'b Async.Deferred.t
val load_sexp : ( Async.Sexp.t, 'a, 'a Core.Or_error.t ) load
val load_sexp_exn : ( Async.Sexp.t, 'a, 'a ) load
val load_sexps : ( Async.Sexp.t, 'a, 'a list Core.Or_error.t ) load
val load_sexps_exn : ( Async.Sexp.t, 'a, 'a list ) load
val included_files : string -> string list Core.Or_error.t Async.Deferred.t
module Macro_loader : sig ... end