Module Backpatched

module Backpatched: sig .. end
A Backpatched value is either a simple value or a "hole", which may or may not have been filled. One can first define a hole and pass it around, and then later fill it in (i.e. backpatch it). This is useful when there is a cycle in the definitions of some entities, but the cycle can be resolved (by backpatching) before the value in the hole needs to be accessed dynamically.

module Hole: sig .. end
type 'a t 
val create : 'a -> 'a t
val of_hole : 'a Hole.t -> 'a t
val get_exn : 'a t -> 'a
It is an error to get from a hole that has not been filled.
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t

It is an error to get from a hole that has not been filled.