anchor.diff:          member x.Listen(r : IReader<'a>) =
               // create and register a callback function
               let onMarking () = 
  -                lock dirty (fun () -> dirty.Add r |> ignore)
  -                subscriptions.Remove r |> ignore
  +                lock dirty (fun () -> dirty.Add r |> ignore )
  +                subscriptions.TryRemove r |> ignore
  +
   
               r.MarkingCallbacks.Add onMarking |> ignore
   
  
positive.code:                                 let r = f.Revoke v
  
                                  // remove the reader from the listen-set
                                  dirtyInner.Destroy r
  
                                  // since the reader is no longer contained we don't want
                                  // to be notified anymore
  
negative.code: 
          interface IDisposable with
              member x.Dispose() = x.Dispose()
  
  
  
      /// <summary>
      /// A reader representing "map" operations
      /// NOTE that the reader actually takes a function "a -> list&lt;b&gt;" instead of the
  