anchor.diff:      static let mutable (au : TUid) = 0
       let uid : TUid = Interlocked.Increment(&au)
       member this.Uid = uid
  -
  -    // Some dirty code to store Unique in Set
       interface IComparable with 
           override this.CompareTo that = 
               if this.Equals(that) then 0
  
positive.code:         { 
              Queue = []; Done = Map.empty; Popped = Map.empty; DisRes = Map.empty
              Backlinks = Map.empty; Saved = Map.empty; Stopped = false
              Successes = Set.empty; Failures = Set.empty; Postrace = []
          }
          |> 
          state {
              do! this.Chain(inp) (Continuation<_>.New(fun res ->
                  if res.Succeeded && not res.Tail.IsEmpty 
                  then failure "UnexpectedTrailingChars" (res.Tail) else res
                  |> T.AddResult
              ))
              do! T.Run ()
              let! t = getState
              return (if t.Successes.Count = 0 then t.Failures else t.Successes) |> Seq.toList
          } 
          |> fst
          
  
negative.code:     Saved: HOMap<GParserResult<'a>, FSet<'a> >
  
      Stopped: bool
      Results: SSet<'a>
  
      Postrace: string list
      DisRes: Map<TUid, SSet<'a> >
  } 
  and T () =
  
      static member Run<'a> () : PState<'a> = state { 
          let! t = getState
  