An `impl Trait` type expands to a recursive type. Erroneous code example: ```compile_fail,E0720 fn make_recursive_type() -> impl Sized { [make_recursive_type(), make_recursive_type()] } ``` An `impl Trait` type must be expandable to a concrete type that contains no `impl Trait` types. For example the previous example tries to create an `impl Trait` type `T` that is equal to `[T, T]`.