public static function getAllInstances()
    {
        try {
            $instances = array();

            foreach (static::getAllNames() as $name) {
                $instances[] = static::byName($name);
            }

            return $instances;
        } catch (Enum\Exception\InvalidInstance $e) {
            throw new LogicException("All valid names should produce valid instances?");
        }
    }