anchor.diff:      default x.Free _ = ()
   
       member x.Pointer = ptr
  +
  +    member x.HasHandle = hasHandle
   
       member x.NoChange() =
           dec &version
  
positive.code:             colorBlendState.Release()
              depthStencil.Release()
              
              if not (NativePtr.isNull pipe) then
                  let p = !!pipe
                  if p.IsValid then
                      VkRaw.vkDestroyPipeline(renderPass.Device.Handle, p, NativePtr.zero)
                  NativePtr.free pipe
                  pipe <- NativePtr.zero
  
          override x.GetHandle(token : AdaptiveToken) =
              let program = program.Update token
                  
              let prog = program.handle
  
negative.code:                     let depthStencil = depthStencil.Update(token) |> ignore; depthStencil.Pointer
                      let colorBlendState = colorBlendState.Update(token) |> ignore; colorBlendState.Pointer
  
                      let basePipeline, derivativeFlag =
                          if not x.HasHandle then
                              VkPipeline.Null, VkPipelineCreateFlags.None
                          else
                              !!x.Pointer, VkPipelineCreateFlags.DerivativeBit
  
                      let! pHandle = VkPipeline.Null
                      let! pDesc =
                          VkGraphicsPipelineCreateInfo(
                              VkStructureType.GraphicsPipelineCreateInfo, 0n,
                              VkPipelineCreateFlags.AllowDerivativesBit ||| derivativeFlag,
                              uint32 prog.ShaderCreateInfos.Length,
                              pShaderCreateInfos,
                              inputState,
  