Hello all, This is a question for users of the BCs. Some of you may get it twice; apologies. I've been investigating giving some of the Containers discriminants to specify number of hash buckets / maximum size for bounded Containers. This makes bounded Maps look like generic with function Hash (K : Key) return Natural is <>; Buckets : Positive; Maximum_Size : Positive; package BC.Containers.Maps.Bounded is type Unconstrained_Map (Number_Of_Buckets : Positive; Maximum_Size : Positive) is new Abstract_Map with private; subtype Map is Unconstrained_Map (Number_Of_Buckets => Buckets, Maximum_Size => Maximum_Size); For many purposes this is a drop-in replacement. However, there are some side-effects: * although I write "function Null_Container return Unconstrained_Map;", what you actually get is a Map (ie, it's constrained). Null_Container was provided for people who wanted to provide initializers for records containing Containers. * I can't see how to provide the Guarded forms, at least without a reversion to the old way of doing things where each Guarded container would have required a child package for each Form. I would rather like to drop the concurrency support (Guarded and Synchronized forms), because * Guarded forms will take a lot of effort to provide, see above. * I've only provided a few Synchronized forms, and there haven't been any requests for more. * I don't believe that I can provide all the options you might need for your particular problems -- I certainly didn't manage it for myself! If you need containers to support some concurrent abstraction, use them with protected types and tasks do do exactly what _you_ want. Any comments gratefully received.