Hm, I'm not sure how feasible this list will be if it require that its elements be clone-able. This also means that every time you get the length of the list you clone every object in the list!

You're going to want to return `&'a T` from this iterator so you can remove the `Clone` bound, which may mean that you need to store `&'a List` instead of `@List` like I had originally hoped.