public interface Queue {
  /** Append o to me. */
  void enqueue(Object o);
  
  /** Return my front element.
   *  Requires: size() > 0 */
  Object head();
  
  /** Remove and return my front element.
   *  Requires: size() > 0. */
  Object dequeue();
  
  /** Return the number of elements in me. */
  int size();
}