(* Accessors for the table of toplevel value bindings.  These functions
     must appear as first and second exported functions in this module.
     (See module Translmod.) *)
val getvalue : string -> Obj.t
val setvalue : string -> Obj.t -> unit
(* End of: accessors for table of toplevel value bindings that must be first in the module signature *)

val print_toplevel_value_bindings : Format.formatter -> unit
val toplevel_env : Env.t ref

type evalenv = Format.formatter -> string -> unit

val init : Format.formatter -> evalenv

type directive_fun =
  | Directive_none of (unit -> unit)
  | Directive_string of (string -> unit)
  | Directive_int of (int -> unit)
  | Directive_ident of (Longident.t -> unit)
  | Directive_bool of (bool -> unit)

type directive_info = {section: string; doc: string}

val add_directive :
  Misc.filepath -> directive_fun -> directive_info -> unit

val directive_info_table : (string, directive_info) Hashtbl.t
val ppf : Format.formatter ref
val eval : evalenv ref
val eval_value_path : Env.t -> Path.t -> Obj.t
