sig
  type 'a set
  val set : 'B00.Memo.Fut.set -> '-> unit
  type memo = B00.Memo.t
  type 'a t
  val create : B00.Memo.Fut.memo -> 'B00.Memo.Fut.t * 'B00.Memo.Fut.set
  val value : 'B00.Memo.Fut.t -> 'a option
  val wait : 'B00.Memo.Fut.t -> 'B00.Memo.fiber
end