Must initialize `as_iter` and `trail`, or defer the declaration until later. I prefer the latter if possible.