public function withDefault($value, $key = null) { $self = clone $this; $self->hasDefault = true; $self->defaultValue = $value; $self->defaultKey = $key; return $self; }