
Honestly, I think iterator behavior is the only place where that is even an issue. The other functions are well-defined for any heap model and shouldn't be any trouble.
That said, without a unified concept, this project loses most, if not it's entire, purpose. The concept is almost as important to making the library useful as having the heaps themselves.
As the author of the original project idea, I am going to disagree with you :) Developing concepts is not a top-down process, nor is it a "chicken and the egg" problem. One way to look at concepts is that they describe common features of related kinds of types, although there is a much more precise way of saying this. How do you know the commonalities of heaps and/or queues if you haven't implemented any? It's always possible to guess, but why spend the time? The project is to implement data structures, not describe them. Andrew Sutton andrew.n.sutton@gmail.com