jon.recoil.org

Module Flambda2_terms.Apply_expr

The representation of the application of an OCaml function, OCaml method or external call to a list of arguments.

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

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

Apply a renaming throughout a term.

val free_names_without_exn_continuation : Flambda2_terms.Apply_expr.t -> Flambda2_nominal.Name_occurrences.t
include Flambda2_nominal.Contains_ids.S with type t := Flambda2_terms.Apply_expr.t

Gather all table identifiers to export them.

module Result_continuation : sig ... end
module Position : sig ... end

The function or method being applied.

The arguments of the function or method being applied.

The arity of the arguments being applied.

The arity of the result(s) of the application.

Information about what kind of call is involved (direct function call, method call, etc).

Where to send the result of the application.

Where to jump to upon the application raising an exception.

Debugging information attached to the application.

Instructions from the source code as to whether the callee should be inlined.

Whether the call was marked @nontail

Change the return continuation of an application.

Change the arguments of an application

Change the call kind of an application.

val returns : Flambda2_terms.Apply_expr.t -> bool

Returns true if the application returns to the caller, false if it is non terminating.