anchor.diff:              if (SBHTree.item tree <= SBHTree.item tree') <> descending
                   then root, roots
                   else root', root::roots'
  -        | [] -> failwith "This should never happen"
  +        | [] -> bug "[]"
           
       let rec findMinRootItem descending = function
           | [Root(_, node)]                       -> item node
  
positive.code: open System.Collections.Generic
  
  exception IncompatibleMerge of string
  
  type private 'T SBHTree = Node of 'T * 'T list * 'T SBHTree list
  
  
negative.code:             if this <= other <> descending
                  then this
                  else other
          | []                                    -> bug "[]"
  
      let uncons descending roots =
          //find the root with the minimum value a return it along with the remaining roots
  