Module Types.Cell

type any = [
| `Empty
| `Empty_one_handler
| `Empty_one_or_more_handlers
| `Full
| `Indir
]
type ('a, 'b) t =
| Empty_one_or_more_handlers : {
mutable run : 'a -> unit;
execution_context : Execution_context.t;
mutable prev : 'a Handler.t;
mutable next : 'a Handler.t;
} -> ('a[> `Empty_one_or_more_handlers ]) t
| Empty_one_handler : ('a -> unit) * Execution_context.t -> ('a[> `Empty_one_handler ]) t
| Empty : ('a[> `Empty ]) t
| Full : 'a -> ('a[> `Full ]) t
| Indir : 'a Ivar.t -> ('a[> `Indir ]) t