Summary.OBSERVABLEOBSERVABLE captures the pattern of backtrackable state that can be enabled and disabled. To use it, register the value that you want to record and then activate and deactivate the value using the returned token.
Indirection is used to be able to handle non-marshallable values.
Register a new value and get the token used to enable and disable it.
val activate : token -> unitActivate/deactive the value attached to the token.
val deactivate : token -> unitval is_active : token -> boolDetermine if the value for the given token is active.