So for a particular substitution, e.g. `Array<Iterable<T>>`[`S`/`Iterable<T>`], I want to offer the user two choices, the unsubsituted version (unapplied) and the substituted version (applied), i.e. both `Array<Iterable<T>>` and `Array<S>`.