anchor.diff:          (* by Invariant 1, front = empty implies rear = [] *)
           Stream.isEmpty front
   
  +    /// The number of elements in the queue.
       let size (Queue { Front = front; Rear = rear; Pending = pending; } : Queue<'T>) =
           (* = Stream.size front + length rear -- by Invariant 2 *)
           Stream.size pending + 2 * List.length rear
  
positive.code:         else
              Queue { Front = front; Rear = rear; Pending = tail pending; }
  
      
      exception Empty
  
      /// Returns an empty queue of the given type.
      let empty : Queue<'T> =
          Queue { Front = Stream.empty; Rear = []; Pending = Stream.empty; }
  
negative.code: type Queue<'T> = Queue of QueueData<'T>
  
  //
  [<RequireQualifiedAccess; CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module Queue =
      open Stream
  
  