anchor.diff:  %% Return reversed queue
   %%
   %% O(1)
  --spec reverse(Q1) -> Q2 when
  -      Q1 :: queue(),
  -      Q2 :: queue().
  +-spec reverse(Q1 :: queue()) -> Q2 :: queue().
   reverse({R,F}) when is_list(R), is_list(F) ->
       {F,R};
   reverse(Q) ->
  
positive.code: %% Return the first element in the queue
  %%
  %% O(1) since the queue is supposed to be well formed
  -spec head(Q) -> Item when
        Q :: queue(),
        Item :: term().
  head({[],[]}=Q) ->
      erlang:error(empty, [Q]);
  head({R,F}) when is_list(R), is_list(F) ->
  
negative.code: 
  %% Cons to head
  %%
  -spec cons(Item :: term(), Q1 :: queue()) -> Q2 :: queue().
  cons(X, Q) ->
      in_r(X, Q).
  
  