anchor.diff:  /// Reduces elements in a set in order from the least (minimum) element
   /// to the greatest (maximum) element.
   [<CompiledName("Reduce")>]
  -let reduce (reduction : 'T -> 'T -> 'T) (set : Set<'T>) =
  +let reduce (reduction : 'T -> 'T -> 'T) (set : Set<'T>) : 'T =
       // Preconditions
       checkNonNull "set" set
       if Set.isEmpty set then
  
positive.code: 
      //
      [<CompiledName("Choose")>]
      let choose (chooser : 'T -> 'U -> 'V option) set1 set2 =
          // Preconditions
          checkNonNull "set1" set1
          checkNonNull "set2" set2
  
negative.code:     let set = Set.remove minElement set
      minElement, set
  
  /// Extracts the maximum element from a set, returning the element
  /// along with the updated set.
  [<CompiledName("ExtractMaximum")>]
  let extractMax (set : Set<'T>) : 'T * Set<'T> =
      // Preconditions
      checkNonNull "set" set
      if Set.isEmpty set then
  