Module Melange_compiler_libs.Translmod

type id_or_ignore_loc =
  1. | Id(Ident.t)
  2. | Ignore_loc(Lambda.scoped_location)
;
let mangle_ident: Stdlib.ref((Ident.t => string));
let eval_rec_bindings: Stdlib.ref((list((id_or_ignore_loc, option((Lambda.lambda, Lambda.lambda)), Lambda.lambda)) => Lambda.lambda => Lambda.lambda));
let transl_implementation: string => (Typedtree.structure, Typedtree.module_coercion) => Lambda.program;
let transl_store_phrases: string => Typedtree.structure => (int, Lambda.lambda);
let transl_store_implementation: string => (Typedtree.structure, Typedtree.module_coercion) => Lambda.program;
let transl_implementation_flambda: string => (Typedtree.structure, Typedtree.module_coercion) => Lambda.program;
let transl_toplevel_definition: Typedtree.structure => Lambda.lambda;
let transl_package: list(option(Ident.t)) => Ident.t => Typedtree.module_coercion => Lambda.lambda;
let transl_store_package: list(option(Ident.t)) => Ident.t => Typedtree.module_coercion => (int, Lambda.lambda);
let transl_package_flambda: list(option(Ident.t)) => Typedtree.module_coercion => (int, Lambda.lambda);
let toplevel_name: Ident.t => string;
let nat_toplevel_name: Ident.t => (Ident.t, int);
let primitive_declarations: Stdlib.ref(list(Primitive.description));
type unsafe_component =
  1. | Unsafe_module_binding
  2. | Unsafe_functor
  3. | Unsafe_non_function
  4. | Unsafe_typext
;
type unsafe_info =
  1. | Unsafe of {
    1. reason: unsafe_component,
    2. loc: Location.t,
    3. subid: Ident.t,
    }
  2. | Unnamed
;
type error =
  1. | Circular_dependency(list((Ident.t, unsafe_info)))
  2. | Conflicting_inline_attributes
;
exception Error(Location.t, error);
let report_error: Location.t => error => Location.error;
let reset: unit => unit;
let get_export_identifiers: unit => list(Ident.t);

make it an array for better performance