sig
  type t
  val create : unit -> TypedSTerm.UStack.t
  type snapshot
  val snapshot : st:TypedSTerm.UStack.t -> TypedSTerm.UStack.snapshot
  val restore : st:TypedSTerm.UStack.t -> TypedSTerm.UStack.snapshot -> unit
end