anchor.diff:      member x.Release() = 
           isObtained <- false
           release x
  -        handle <- None
  +        //handle <- None
   
       member x.Obtain() = 
           handle <- Some <| obtain x
  
positive.code:                 // one obtaining/releasing the desired context.
                  new ContextToken (
                      ( fun x ->
                          sem.Wait()
                          handle.MakeCurrent()
                          currentToken.Value <- Some x
                          handle),
                      ( fun x ->
                          handle.ReleaseCurrent()
                          sem.Release() |> ignore
                          currentToken.Value <- None)
                  ) :> _
                      
      /// <summary>
  
negative.code:                     // if the current token uses the same context as requested
                      // we don't need to perform any operations here since
                      // the outer token will take care of everything
                      nopDisposable
  
                  else
                      // if the current token is using a different context
  