anchor.diff:          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; }
  
positive.code:         (* by Invariant 1, front = empty implies rear = [] *)
          Stream.isEmpty front
  
      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
  
negative.code: type Queue<'T> = Queue of QueueData<'T>
  
  //
  [<RequireQualifiedAccess; CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module Queue =
      open Stream
  
  