val top : t
val current : unit -> t
val within : t -> f:(unit -> 'a) -> 'a