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