public static final function first($repeatable) : OptionalInterface { if (self::isRepeatable($repeatable)) { if (Arrays::isArray($repeatable)) { return Arrays::first($repeatable); } if (Traversables::isTraversable($repeatable)) { return Traversables::first($repeatable); } } throw new \InvalidArgumentException(self::$MSG_ARGUMENT1_NOT_REPATABLE); }