anchor.diff:          | Removal
           | Replacement of int
   
  -    let arePriorityOrdered (order: Heaps.HeapRootOrdering) elements : bool = 
  +    type FetchAction = 
  +        | FetchExtract
  +        | FetchReplacement of int 
  +        | FetchPeek
  +            
  +    let areElementsPriorityOrdered (order: Heaps.HeapRootOrdering) elements : bool = 
           let comparer = 
               match order with 
               | Heaps.MinKey -> fun (a, b) -> a <= b
  
positive.code:                 Heaps.DHeap.highestPriority heap |> ignore
                  Heaps.DHeap.size heap = initialSize && Heaps.DHeap.isEmpty heap = initialEmpty
                  
          testPropertyWithConfig {Config.Quick with MaxTest=10000; EndSize=512} "Elements inserted come out in order" <|
              fun (heap: Heaps.DHeap<int>) ->
                  emptyHeapAndCheckIsPriorityOrdered heap
  
          testPropertyWithConfig {Config.Quick with MaxTest=10000; EndSize=1024} "After creation and further randomly ordered inserts/extractions elements come out in order" <|
              fun (heap: Heaps.DHeap<int>) (heapUpdateActions: InsertExtractAction list) ->
                  let updateHeap action = 
                      match action with
                      | Insertion(value) -> Heaps.DHeap.insert heap value
                      | Removal -> Heaps.DHeap.extractHighestPriority heap |> ignore
                      | Replacement(value) -> Heaps.DHeap.extractHighestPriorityAndInsert heap value |> ignore
                  List.iter updateHeap heapUpdateActions
                  emptyHeapAndCheckIsPriorityOrdered heap
  
      ]
  
  
  
negative.code:         |> Seq.pairwise
          |> Seq.forall comparer
      
      let emptyHeapAndCheckIsPriorityOrdered (heap: Heaps.DHeap<int>) : bool = 
          let order = Heaps.DHeap.order heap
          let elemsCount = Heaps.DHeap.size heap                
          let removeElementOrFailTest = 
  