Module Flambda2_simplify.Apply_cont_rewrite
Rewrites applied to Apply_cont expressions in order to reflect changes in continuation arities consequential to addition or removal of parameters.
The rewrites are actually applied via Expr_builder.
val print :
Stdlib.Format.formatter ->
Flambda2_simplify.Apply_cont_rewrite.t ->
unitval create :
original_params:Flambda2_bound_identifiers.Bound_parameters.t ->
extra_params_and_args:Flambda2_simplify.Continuation_extra_params_and_args.t ->
decide_param_usage:
(Flambda2_bound_identifiers.Bound_parameter.t ->
Flambda2_simplify.Apply_cont_rewrite.used) ->
Flambda2_simplify.Apply_cont_rewrite.textra_args (and hence extra_params) must be given in order: later extra-args may refer to earlier extra-args, but not vice-versa.
val does_nothing : Flambda2_simplify.Apply_cont_rewrite.t -> boolval get_unused_params :
Flambda2_simplify.Apply_cont_rewrite.t ->
Flambda2_bound_identifiers.Bound_parameters.tval original_params_arity :
Flambda2_simplify.Apply_cont_rewrite.t ->
[> ] Flambda2_kinds.Flambda_arity.tval make_rewrite :
Flambda2_simplify.Apply_cont_rewrite.t ->
machine_width:Target_system.Machine_width.t ->
ctx:Flambda2_simplify.Apply_cont_rewrite.rewrite_apply_cont_ctx ->
Flambda2_identifiers.Apply_cont_rewrite_id.t ->
Flambda2_term_basics.Simple.t list ->
((Flambda2_bound_identifiers.Bound_var.t
* Flambda2_terms.Code_size.t
* Flambda2_terms.Flambda.Named.t)
list
* Flambda2_term_basics.Simple.t list)
Flambda2_term_basics.Or_invalid.tval rewrite_exn_continuation :
Flambda2_simplify.Apply_cont_rewrite.t ->
Flambda2_identifiers.Apply_cont_rewrite_id.t ->
Flambda2_terms.Exn_continuation.t ->
Flambda2_terms.Exn_continuation.t