static <E extends Exception> Releasable<E>
		of(final Collection<? extends ThrowingRunnable<? extends E>> releases) {
			final List<ThrowingRunnable<? extends E>> list = new ArrayList<>();
			releases.forEach(c -> list.add(requireNonNull(c)));
			Collections.reverse(list);

			return () -> Lifecycle.invokeAll(ThrowingRunnable::run, list);
		}
Create a new {@code ExtendedCloseable} object with the given initial
release <em>methods</em>>. The given list of objects is closed in
reversed order.

@see #of(ThrowingRunnable...)

@param releases the initial release methods
@return a new closeable object which collects the given
       {@code releases}
@throws NullPointerException if one of the {@code releases} is
        {@code null}
jenetics/src/main/java/io/jenetics/internal/util/Lifecycle.java