Module Flambda2_terms.Effects_and_coeffects
type t =
Flambda2_terms.Effects.t
* Flambda2_terms.Coeffects.t
* Flambda2_terms.Placement.t
* Flambda2_terms.Validity.tA triple of an effect, a coeffect, and a placement.
val print :
Stdlib.Format.formatter ->
Flambda2_terms.Effects_and_coeffects.t ->
unitval compare :
Flambda2_terms.Effects_and_coeffects.t ->
Flambda2_terms.Effects_and_coeffects.t ->
intComparison.
val pure : Flambda2_terms.Effects_and_coeffects.tThe value stating that no effects or coeffects take place, with a strict placement. This is exactly No_effects, No_coeffects, Strict.
val pure_can_be_duplicated : Flambda2_terms.Effects_and_coeffects.tThe value stating that no effects of coeffects take place, and that the expression can be moved and duplicated if needed. This is exactly No_effects, No_coeffects, Delay.
val all : Flambda2_terms.Effects_and_coeffects.tThe value stating that any effects and/or coeffects may take place (with strict placement). This is exactly Arbitrary_effects, Has_coeffects, Strict.
val read : Flambda2_terms.Effects_and_coeffects.tThe value stating that a read (i.e only a coeffect) takes place (with strict placement). This is No_effects, Has_coeffects, Strict.
val join :
Flambda2_terms.Effects_and_coeffects.t ->
Flambda2_terms.Effects_and_coeffects.t ->
Flambda2_terms.Effects_and_coeffects.tJoin two effects, coeffects and placements.
val validity :
Flambda2_terms.Effects_and_coeffects.t ->
Flambda2_terms.Validity.tProjection