# Module Lazy_sequence.Iterator

    module Iterator: sig .. end

    type 'a seq = 'a Lazy_sequence.t

    type 'a t

    val create : 'a seq -> 'a t

    val close : 'a t -> unit

    val with_sequence : 'a seq -> f:('a t -> 'b) -> 'b

    val has_next : 'a t -> bool

    val peek : 'a t -> 'a option

    val get : 'a t -> 'a option

    val get_exn : 'a t -> 'a

    val iter : 'a t -> f:('a -> unit) -> unit

    val fold : 'a t ->
           init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum

    val copy : 'a t -> 'a t