///|
pub fn[T] iter_append(iter : Iter[T], a : T) -> Iter[T] {
  Iter::new(fn(yield_) {
    if iter.run(yield_) == IterContinue {
      yield_(a)
    } else {
      IterEnd
    }
  })
}