private static function absent() { return new self(null); }
public function __get($field) { if (!property_exists($this->object, $field)) { return Optional::absent(); } return Optional::fromNullable($this->object->{$field}); }