protected function getGenericPropertyReader(): Closure
    {
        $reader = function &($object, $property) {
            $value = &Closure::bind(function &() use ($property) {
                return $this->{$property};
            }, $object, $object)->__invoke();

            return $value;
        };

        return $reader;
    }