Philipp Stephani writes: > >>> - dedicated stack and queue datatypes that hide their implementation > >> > >> Can you go into more detail about what is deficient in l3seq for this? > > > > I think we are getting at "concepts" here: something like \cs_set_eq:NN \stack_new:N \seq_new:N, ... > > Yes. This separation would perhaps be a bit clearer to the user. I read the > discussion in source3 on removing \seq_put_left in favor of \seq_push, but > with a stack datatype (which would be rather trivial) we would have the > same situation as in C++: A deque as a container (a L3 seq is in fact > similar to a deque because you can add elements at both ends, but not in > the middle, as opposed to vectors and lists), and stack and queue as > container adaptors. However, this is a purely design decision (Python, for > example, has no dedicated stack datatype). at some point in time there has been a separate stack module but we decided not to keep that separation. As mentioned it is largely a design/philosophical question and I think we should leave it as it is. frank >