jon.recoil.org

Module Flambda2_terms.Call_kind

Classification of application expressions.

module Function_call : sig ... end
module Method_kind : sig ... end
module Effect : sig ... end

Algebraic effect operations. The corresponding Apply_expr will have the callee set to None and an empty argument list for these. This is done to ensure there is no confusion between the different Simples.

Whether an application expression corresponds to an OCaml function invocation, an OCaml method invocation, or an external call.

include Flambda2_terms.Expr_std.S with type t := Flambda2_terms.Call_kind.t
include Flambda2_nominal.Contains_names.S with type t := Flambda2_terms.Call_kind.t

Compute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)

Apply a renaming throughout a term.

include Flambda2_nominal.Contains_ids.S with type t := Flambda2_terms.Call_kind.t

Gather all table identifiers to export them.

val c_call : needs_caml_c_call:bool -> is_c_builtin:bool -> effects:Flambda2_terms.Effects.t -> coeffects:Flambda2_terms.Coeffects.t -> Flambda2_term_basics.Alloc_mode.For_applications.t -> Flambda2_terms.Call_kind.t