int ->
object ('a)
  val position_ : int
  method advance : 'i -> 'a
  method position : int
end