Разновидности реализаций контейнера
===================================

* Аллокатор
  * статический (static)
  * фиксированный (fixed): передаётся извне
* Способ определения размера:
  * статический (static): TCollection<TValue>, ... SizeOf(TValue)
  * динамический (dynamic): Collection.Insert(Value, ValueLength)
  * фиксированный (fixed): Collection.Init(ValueLength)
* Тип:
  * неуправляемый (raw),
  * управляемый (managed)
* Способ определения хеш-функции
  * статический (static)
  * фиксированный (fixed): функция передаётся параметром
  * внешний: хеш вычисляется и передаётся извне

Для record'ов и чисел лучше всего подходит статический сырой. Для строк -- динамический сырой или статический управляемый. Фиксированные размеры хороши для уменьшения размера итогового бинарника.
