package plebeia

  1. Overview
  2. Docs
type ('acc, 'data) visitor

Traversal handle

type dir = [
  1. | `Bud
  2. | `Extender
  3. | `Side of Segment.side
]
val prepare : 'acc -> 'data -> Plebeia__.Cursor.cursor -> ('acc -> 'data -> Plebeia__.Cursor.cursor -> (Plebeia__.Cursor.cursor * ('acc * ('data * dir) list option), Error.t) Result.t) -> ('acc, 'data) visitor
val step : ('acc, 'data) visitor -> ([ `Finished of Plebeia__.Cursor.cursor * 'acc | `Continue of ('acc, 'data) visitor ], Error.t) Result.t

Run one step of traversal.

val fold : 'acc -> 'data -> Plebeia__.Cursor.cursor -> ('acc -> 'data -> Plebeia__.Cursor.cursor -> (Plebeia__.Cursor.cursor * ('acc * ('data * dir) list option), Error.t) Result.t) -> (Plebeia__.Cursor.cursor * 'acc, Error.t) Result.t

Traversal in one call. Not interleavable.

val ls : Plebeia__.Cursor.cursor -> (Plebeia__.Cursor.cursor * (Segment.t * Plebeia__.Node.node) list, Error.t) Result.t
val ls_rec : Plebeia__.Cursor.cursor -> (Plebeia__.Cursor.cursor * (Segment.t list * Plebeia__.Node.node) list, Error.t) Result.t