Module Self_mini_c

module Errors : sig ... end
val get_t_function : raise:( [> `Self_mini_c_not_a_function ], 'a ) Simple_utils.Trace.raise -> Mini_c.Types.type_expression -> Mini_c.Types.type_expression * Mini_c.Types.type_expression
val get_function_or_eta_expand : raise: ( [> `Self_mini_c_corner_case of string ], 'a ) Simple_utils.Trace.raise -> Mini_c.expression -> Mini_c.anon_function
val is_pure_constant : Mini_c.constant' -> bool
val is_pure : Mini_c.expression -> bool
val occurs_count : Mini_c.expression_variable -> Mini_c.expression -> int
val is_variable : Mini_c.expression -> bool
val inline_let : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val inline_lets : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val beta : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val betas : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val eta : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val etas : bool Core.ref -> Mini_c.expression -> Mini_c.expression
val contract_check : raise: ( [> `Self_mini_c_bad_self_address of Mini_c.constant' ], 'a ) Simple_utils.Trace.raise -> options:Compiler_options.t -> Mini_c.anon_function -> Mini_c.anon_function
val create_contract : raise: ( [> `Self_mini_c_fvs_in_create_contract_lambda of Mini_c.expression * Mini_c.Types.expression_variable ], 'a ) Simple_utils.Trace.raise -> Mini_c.expression -> Mini_c.expression
val all_expression : raise: ( [> `Self_mini_c_fvs_in_create_contract_lambda of Mini_c.expression * Mini_c.Types.expression_variable ], 'a ) Simple_utils.Trace.raise -> Compiler_options.t -> Mini_c.expression -> Mini_c.expression