QSWAG[T] = ref object op: proc (x, y: T): T e: T top: seq[T] bottom: seq[T] topfold: seq[T] bottomfold: seq[T]
CPLIB_COLLECTIONS_QSWAG = 1
proc `$`[T](self: QSWAG[T]): string
proc `[]`[T](self: QSWAG[T]; index: int): T
proc fold[T](self: QSWAG[T]): T
proc get_maxrights[T](v: seq[T]; op: proc (l, r: T): T; e: T; f: proc (x: T): bool): seq[int]
proc initSWAG[T](op: proc (x, y: T): T; e: T): QSWAG[T]
proc len[T](self: QSWAG[T]): int
proc pop[T](self: QSWAG[T]): T
proc push[T](self: QSWAG[T]; x: T)