public static function range($class, Enum $from, Enum $to) {
			if (!EnumUtil::isEnumClass($class))
				throw new InvalidArgumentException($class .
					' is not loaded or does not extend DaybreakStudios\Common\Enum\Enum.');
			else if (!EnumUtil::isEnum($from, $class) || !EnumUtil::isEnum($to, $class))
				throw new InvalidArgumentException(sprintf('$from and $to must be an instance of %s.', $this->class));

			$values = array();

			foreach ($class::values() as $v)
				if ($v->ordinal() >= $from->ordinal() && $v->ordinal() <= $to->ordinal())
					$values[] = $v;

			return new EnumSet($class, $values);
		}