public function withValue(string $value) : self { $clone = clone $this; $clone->value = $value; return $clone; }