anchor.diff:          /// Insert a key into and extract the highest priority key from the dheap priority queue
           /// Purely a performance optimisation that reduces the heap maintenance cost over separately
           /// calling `extractHighestPriority` then `insert`.
  -        let extractHighestPriorityAndInsert dheap (newKey: 'T) : HeapResult<'T> = 
  +        let extractHighestPriorityAndInsert (dheap: DHeap<'T>) (newKey: 'T) : HeapResult<'T> = 
               if not(isEmpty dheap) then
                   let highest = dheap.Heap.[0]
                   dheap.Heap.[0] <- newKey
  
positive.code: 
  
          /// Insert a key into the dheap priority queue    
          let insert dheap (key: 'T) = 
              // Add to heap array, making it the last element and lowest priority and 
              // then swim it up to its proper place.
              dheap.Heap.Add(key)
              swim dheap <| (size dheap) - 1
  
          /// Inserts everything in the items seq into an *empty* dheap.
          let private heapifyItems dheap items = 
              // We would use a simpler ```Seq.iter (fun item -> insert dheap item) items```
              // if we want a convenience bulk insert on a non-empty heap.
              if not(isEmpty dheap) then
  
negative.code: 
          /// Ensure that a key (identified by index) is lower priority than its parent and if not 
          /// swim it up the tree swapping with the parent (and grandparent etc) as required
          let rec private swim (dheap: DHeap<'T>) (index:int) =       
              if index <> 0 then
                  let parentIndex = indexOfParent dheap index        
                  if isHigherPriority dheap index parentIndex then
  