sig
  type 'a conv = 'Sexp.Annotated.conv
  val load_sexp : string -> Sexp.t
  val load_sexps : string -> Sexp.t list
  val load_sexp_conv : string -> (Sexp.t -> 'a) -> 'a conv
  val load_sexps_conv : string -> (Sexp.t -> 'a) -> 'a conv list
  val load_sexp_conv_exn : string -> (Sexp.t -> 'a) -> 'a
  val load_sexps_conv_exn : string -> (Sexp.t -> 'a) -> 'a list
  module type Sexp_loader =
    sig
      module Monad :
        sig
          type 'a t
          val return : '-> 'a t
          module Monad_infix :
            sig val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t end
          module List :
            sig
              val iter : 'a list -> f:('-> unit t) -> unit t
              val map : 'a list -> f:('-> 'b t) -> 'b list t
            end
        end
      val load_sexps : string -> Sexp.t list Monad.t
      val load_annotated_sexps : string -> Sexp.Annotated.t list Monad.t
    end
  module Loader :
    functor (S : Sexp_loader->
      sig
        val load_sexp_conv : string -> (Sexp.t -> 'a) -> 'a conv S.Monad.t
        val load_sexps_conv :
          string -> (Sexp.t -> 'a) -> 'a conv list S.Monad.t
      end
  val add_error_location : string -> exn -> exn
end