public function __construct($quantifier, $element)
{
if ($quantifier instanceof ValueInterface) {
$quantifier = clone $quantifier;
} elseif (false === is_int($quantifier)) {
throw TypeErrorFactory::createForDynamicArrayQuantifier($quantifier);
}
if (false === is_string($element) && false === is_array($element) && false === $element instanceof ValueInterface) {
throw TypeErrorFactory::createForDynamicArrayElement($element);
}
$this->quantifier = $quantifier;
$this->element = deep_clone($element);
}