Module M.E

type texpr = B.type_expr
type benv = B.benv
type varname = string
type pexpr = (annotation, texpr, string, string, varname) PAst.t
type pat = (annotation, texpr, string, varname) PAst.pattern
module NameMap : Stdlib.Map.S with type key = string
type name_var_map = Mlsem_common.Variable.t NameMap.t
val empty_name_var_map : name_var_map
val to_expr : benv -> name_var_map -> pexpr -> PAst.expr * benv
type element =
  1. | Definitions of ((texpr, string) PAst.vdef * pexpr) list
  2. | SigDef of string * bool * texpr option
  3. | Types of (string * string list * texpr) list
  4. | AbsType of string * int
  5. | Command of string * Mlsem_lang.Const.t
type program = (annotation * element) list