public static function getCache(): array
    {
    	$caller = static::class;

        if (!array_key_exists($caller, self::$cache)) {
            try {
                $reflected_caller = new \ReflectionClass($caller);
                self::$cache[$caller] = $reflected_caller->getConstants();
            } catch (\ReflectionException $re) {
                throw EnumerableException::reflectionError($re->getMessage());
            }
        }

        return self::$cache[$caller];
    }