There's a catch: if we want bidirectional, we need the last element of the range.
`end` is a parameter to all overloads of `iota`. Note that it is exclusive, so the first `back` is `--end`, not `end` as passed in by the caller.
Are you sure you understand bidirectional ranges correctly? Any range that has the `back` property and `popBack` method are bidirectional.