public function __construct($keyType, $valType, array $storage = [])
{
$this->keyType = $this->determineType($keyType, true);
$this->valType = $this->determineType($valType);
foreach ($storage as $key => $val) {
$this->validateItem($key, $this->keyType);
$this->validateItem($val, $this->valType);
$this->storage[$key] = $val;
}
}