Module Type_immediacy

Immediacy status of a type

type t =
  1. | Unknown
    (*

    We don't know anything

    *)
  2. | Always
    (*

    We know for sure that values of this type are always immediate

    *)
  3. | Always_on_64bits
    (*

    We know for sure that values of this type are always immediate on 64 bit platforms. For other platforms, we know nothing.

    *)
module Violation : sig ... end
val coerce : t -> as_:t -> (unit, Violation.t) result

coerce t ~as_ returns Ok () iff t can be seen as type immediacy as_. For instance, Always can be seen as Always_on_64bits but the opposite is not true. Return Error _ if the coercion is not possible.

val of_attributes : Parsetree.attributes -> t

Return the immediateness of a type as indicated by the user via attributes