anchor.diff:  
   % O(1)
   front({[X|L], R}) when is_list(L), is_list(R) -> X.
  -back({L, [X|R]}) when is_list(L), is_list(R) -> X.
       
   % O(1) amortized
   push({L, R}, X) when is_list(L), is_list(R) ->
  
positive.code: 
  -module(meeqo_queue).
  
  -export([new/0, empty/1, len/1, front/1, back/1, push/2, pop/1]).
  
  % O(1)
  new() -> {[], []}.
  
negative.code:     end.
  
  % O(1) amortized
  pop({[_X], R}) when is_list(R) ->
      {lists:reverse(R), []};
  pop({[_X|L], R}) when is_list(L), is_list(R) ->
      {L, R}.
  
  