jon.recoil.org

Module Flambda2_terms.Effects_and_coeffects

A triple of an effect, a coeffect, and a placement.

val print : Format.formatter -> t -> unit

Print

val compare : t -> t -> int

Comparison.

val pure : t

The 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 : t

The 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 : t

The value stating that any effects and/or coeffects may take place (with strict placement). This is exactly Arbitrary_effects, Has_coeffects, Strict.

val read : t

The value stating that a read (i.e only a coeffect) takes place (with strict placement). This is No_effects, Has_coeffects, Strict.

val join : t -> t -> t

Join two effects, coeffects and placements.

val validity : t -> Validity.t

Projection