Module Flambda2_terms.Trap_action
Actions affecting exception traps on the stack. These are always associated with an Apply_cont node; the trap action is executed before the application of the continuation.
Beware: continuations cannot be used both as an exception handler and as a normal continuation (since continuations used as exception handlers use a calling convention that may differ from normal).
module Raise_kind : sig ... endtype t = | Push of {exn_handler : Flambda2_identifiers.Continuation.t;
}| Pop of {exn_handler : Flambda2_identifiers.Continuation.t;(*Note that even for
*)Pop,exn_handlermight not match the target continuation in the enclosingApply_cont_expr. One example is when a value is being returned from the end of the non-exceptional block of a try...with.raise_kind : Flambda2_terms.Trap_action.Raise_kind.t option;
}
include Flambda2_terms.Expr_std.S with type t := Flambda2_terms.Trap_action.t
val print : Stdlib.Format.formatter -> Flambda2_terms.Trap_action.t -> unitinclude Flambda2_nominal.Contains_names.S
with type t := Flambda2_terms.Trap_action.t
val free_names :
Flambda2_terms.Trap_action.t ->
Flambda2_nominal.Name_occurrences.tCompute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)
module Option : sig ... endval compare :
Flambda2_terms.Trap_action.t ->
Flambda2_terms.Trap_action.t ->
intval ids_for_export :
Flambda2_terms.Trap_action.t ->
Flambda2_nominal.Ids_for_export.tval apply_renaming :
Flambda2_terms.Trap_action.t ->
Flambda2_nominal.Renaming.t ->
Flambda2_terms.Trap_action.t