package sexp_macro

  1. Overview
  2. Docs
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 = [
  1. | `Result of 'a
  2. | `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 : sig ... end) : 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