anchor.diff:          match snap.State with
           | Forever v -> avail v
           | Obsolete -> obsolete ()
  -        | Promised q -> JQueue.Add avail q
           | Ready (v, q) -> JQueue.Add obsolete q; avail v
           | Waiting (q1, q2) -> JQueue.Add avail q1; JQueue.Add obsolete q2
   
  
positive.code: 
  State transitions:
  
      Promised        -> Forever      // MarkForever
      Waiting         -> Forever      // MarkForever
      Waiting         -> Obsolete     // MarkObsolete
      Waiting         -> Ready        // MarkReady
  
negative.code: type SnapState<'T> =
      | Forever of 'T
      | Obsolete
      | Ready of 'T * JQueue<unit -> unit>
      | Waiting of JQueue<'T -> unit> * JQueue<unit -> unit>
  
  