/******************************************************************************
*									      *
*	(C) 1993 by K. Ballueder					      *
*									      *
*	See README and COPYING for details.				      *
*									      *
*		kballued@charon.physik.uni-osnabrueck.de		      *
*		kballued@jupiter.rz.uni-osnabrueck.de			      *
*									      *
**** Changelog: ***************************************************************
*/

// new(List, minimal-dimension)
//	double-ended queue in a ringbuffer

% ListClass: CollectionClass  List: Collection {
    unsigned nelts;		// # elements in buffer
    unsigned begin;		// index of takeFirst slot, 0..dim
    unsigned end;		// index of addLast slot, 0..dim
%
    Object @ addFirst (_self, const Object @ element);
    Object @ addLast (_self, const Object @ element);
    Object @ lookAt (const _self, unsigned n);
    Object @ takeFirst (_self);
    Object @ takeLast (_self);
%-						// abstract, for Queue/Stack
    Object @ take (_self);
%}
