jon.recoil.org

Module Flambda2_simplify.Simplify_primitive_result

type t_simplified = private {
  1. simplified_named : Simplified_named.t Flambda2_term_basics.Or_invalid.t;
  2. try_reify : bool;
  3. dacc : Downwards_acc.t;
}
val create : Flambda2_terms.Flambda.Named.t -> try_reify:bool -> Downwards_acc.t -> t
val create_simplified : Simplified_named.t -> try_reify:bool -> Downwards_acc.t -> t
val create_invalid : Downwards_acc.t -> t

original_term is in the majority of cases the pre-simplification term corresponding to the primitive, but it is fine for it to be a new term, whose type is unknown.

val is_invalid : t -> bool
val map_dacc : t -> (Downwards_acc.t -> Downwards_acc.t) -> t