Module Flambda2_terms.Apply_expr
The representation of the application of an OCaml function, OCaml method or external call to a list of arguments.
val free_names_except_callee :
Flambda2_terms.Apply_expr.t ->
Flambda2_nominal.Name_occurrences.tinclude Flambda2_terms.Expr_std.S with type t := Flambda2_terms.Apply_expr.t
val print : Stdlib.Format.formatter -> Flambda2_terms.Apply_expr.t -> unitinclude Flambda2_nominal.Contains_names.S
with type t := Flambda2_terms.Apply_expr.t
val free_names :
Flambda2_terms.Apply_expr.t ->
Flambda2_nominal.Name_occurrences.tCompute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)
val apply_renaming :
Flambda2_terms.Apply_expr.t ->
Flambda2_nominal.Renaming.t ->
Flambda2_terms.Apply_expr.tApply a renaming throughout a term.
val free_names_without_exn_continuation :
Flambda2_terms.Apply_expr.t ->
Flambda2_nominal.Name_occurrences.tinclude Flambda2_nominal.Contains_ids.S
with type t := Flambda2_terms.Apply_expr.t
val ids_for_export :
Flambda2_terms.Apply_expr.t ->
Flambda2_nominal.Ids_for_export.tGather all table identifiers to export them.
module Result_continuation : sig ... endmodule Position : sig ... endval create :
callee:Flambda2_term_basics.Simple.t option ->
continuation:Flambda2_terms.Apply_expr.Result_continuation.t ->
Flambda2_terms.Exn_continuation.t ->
args:Flambda2_term_basics.Simple.t list ->
args_arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
return_arity:[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
call_kind:Flambda2_terms.Call_kind.t ->
Debuginfo.t ->
inlined:Flambda2_terms.Inlined_attribute.t ->
inlining_state:Flambda2_terms.Inlining_state.t ->
probe:Flambda2_terms.Probe.t ->
position:Flambda2_terms.Apply_expr.Position.t ->
relative_history:Flambda2_terms.Inlining_history.Relative.t ->
Flambda2_terms.Apply_expr.tCreate an application expression.
val callee :
Flambda2_terms.Apply_expr.t ->
Flambda2_term_basics.Simple.t optionThe function or method being applied.
val args : Flambda2_terms.Apply_expr.t -> Flambda2_term_basics.Simple.t listThe arguments of the function or method being applied.
val args_arity :
Flambda2_terms.Apply_expr.t ->
[ `Complex ] Flambda2_kinds.Flambda_arity.tThe arity of the arguments being applied.
val return_arity :
Flambda2_terms.Apply_expr.t ->
[ `Unarized ] Flambda2_kinds.Flambda_arity.tThe arity of the result(s) of the application.
val call_kind : Flambda2_terms.Apply_expr.t -> Flambda2_terms.Call_kind.tInformation about what kind of call is involved (direct function call, method call, etc).
val continuation :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Apply_expr.Result_continuation.tWhere to send the result of the application.
val exn_continuation :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Exn_continuation.tWhere to jump to upon the application raising an exception.
val dbg : Flambda2_terms.Apply_expr.t -> Debuginfo.tDebugging information attached to the application.
val inlined : Flambda2_terms.Apply_expr.t -> Flambda2_terms.Inlined_attribute.tInstructions from the source code as to whether the callee should be inlined.
val position :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Apply_expr.Position.tWhether the call was marked @nontail
val erase_callee : Flambda2_terms.Apply_expr.t -> Flambda2_terms.Apply_expr.tval with_continuation :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Apply_expr.Result_continuation.t ->
Flambda2_terms.Apply_expr.tChange the return continuation of an application.
val with_continuations :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Apply_expr.Result_continuation.t ->
Flambda2_terms.Exn_continuation.t ->
Flambda2_terms.Apply_expr.tval with_exn_continuation :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Exn_continuation.t ->
Flambda2_terms.Apply_expr.tval with_args :
Flambda2_terms.Apply_expr.t ->
Flambda2_term_basics.Simple.t list ->
args_arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
Flambda2_terms.Apply_expr.tChange the arguments of an application
val with_call_kind :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Call_kind.t ->
Flambda2_terms.Apply_expr.tChange the call kind of an application.
val inlining_state :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Inlining_state.tval inlining_arguments :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Inlining_arguments.tval probe : Flambda2_terms.Apply_expr.t -> Flambda2_terms.Probe.tval relative_history :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Inlining_history.Relative.tval returns : Flambda2_terms.Apply_expr.t -> boolReturns true if the application returns to the caller, false if it is non terminating.
val with_inlined_attribute :
Flambda2_terms.Apply_expr.t ->
Flambda2_terms.Inlined_attribute.t ->
Flambda2_terms.Apply_expr.t