public function remove($value)
{
$identityHash = Identity::hash($value);
if (!isset($this->values[$identityHash]) && !array_key_exists($identityHash, $this->values)) {
return false;
}
unset($this->values[$identityHash]);
$this->length--;
return true;
}