jon.recoil.org

Module Flambda2_terms.Coeffects

type t =
  1. | No_coeffects
    (*

    "No coeffects" means that the primitive does not observe the effects (in the sense described above) of other expressions. For example, it must not read from any mutable storage or call arbitrary external functions.

    It is assumed in Flambda that, subject to data dependencies, expressions with neither effects nor coeffects may be reordered with respect to other expressions.

    *)
  2. | Has_coeffects
    (*

    The primitive may be affected by effects from other expressions.

    *)

Things that the world does to a primitive application.

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

Print function.

val compare : t -> t -> int

Comparison function.

val join : t -> t -> t

Join two coeffects.

val from_lambda : Primitive.coeffects -> t