# Module Std_kernel.Type_immediacy

    module Type_immediacy: Type_immediacy

    type 'a t

    module Always: sig .. end

    module Sometimes: sig .. end

    module Never: sig .. end

    val of_typerep : 'a Typerep_lib.Std.Typerep.t -> 'a t

    type 'a dest =

`|` | `Always of `'a Always.t``
`|` | `Sometimes of `'a Sometimes.t``
`|` | `Never of `'a Never.t``

    val dest : 'a t -> 'a dest

    val int_as_value : 'a t -> int -> 'a option

    val int_as_value_exn : 'a t -> int -> 'a

    val int_is_value : 'a t -> int -> bool

    val value_as_int : 'a t -> 'a -> int option

    val value_as_int_exn : 'a t -> 'a -> int

    val value_is_int : 'a t -> 'a -> bool