anchor.diff:  
   
       member x.Level = level
  +    member x.Inputs = inputs
       member x.Outputs = outputs
   
       member x.AddReference() = Interlocked.Increment(&refCount) |> ignore
  
positive.code:         interface INativeResource<'n> with
              member x.Pointer = x.Pointer
  
          abstract member Pointer : nativeptr<'n>
  
          new(level : int) = { inherit AbstractResource<'h>(level) }
  
negative.code:                     subscription.Value.Dispose()
                      subscription <- None
          )
  
      static member CurrentToken =
          match AdaptiveResource.currentToken with
              | Some t -> t
              | None -> AdaptiveToken.Top
  
      static member Evaluate(t : AdaptiveToken, f : unit -> 'a) =
          let old = AdaptiveResource.currentToken
          AdaptiveResource.currentToken <- Some t 
          try f()
          finally AdaptiveResource.currentToken <- old
  
      member x.DestroyCallbacks() =
          lock callbacks (fun () -> 
  