jon.recoil.org

Module Flambda2_terms.Exn_continuation

Exception continuations for function calls, etc.

We allow exception handlers that have not only the exception bucket argument but also a sequence of "extra arguments".

type t
include Flambda2_algorithms.Container_types.S with type t := Flambda2_terms.Exn_continuation.t
include Flambda2_algorithms.Container_types_intf.Thing with type t := Flambda2_terms.Exn_continuation.T.t
include Stdlib.Hashtbl.HashedType with type t := Flambda2_terms.Exn_continuation.T.t

The equality predicate used to compare keys.

A hashing function on keys. It must be such that if two keys are equal according to equal, then they have identical hash values as computed by hash. Examples: suitable (equal, hash) pairs for arbitrary key types include

  • ((=), hash) for comparing objects by structure (provided objects do not contain floats)
  • ((fun x y -> compare x y = 0), hash) for comparing objects by structure and handling Stdlib.nan correctly
  • ((==), hash) for comparing objects by physical equality (e.g. for mutable or cyclic objects).
include Stdlib.Map.OrderedType with type t := Flambda2_terms.Exn_continuation.T.t

A total ordering function over the keys. This is a two-argument function f such that f e1 e2 is zero if the keys e1 and e2 are equal, f e1 e2 is strictly negative if e1 is smaller than e2, and f e1 e2 is strictly positive if e1 is greater than e2. Example: a suitable ordering function is the generic structural comparison function Stdlib.compare.

include Flambda2_terms.Expr_std.S with type t := Flambda2_terms.Exn_continuation.t
include Flambda2_nominal.Contains_names.S with type t := Flambda2_terms.Exn_continuation.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.Exn_continuation.t

Gather all table identifiers to export them.

The exception handler itself.

Any extra arguments together with their kinds.

The arity of the given exception continuation, taking into account both the exception bucket argument and any extra_args.