package lrgrep

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Indexing.IndexSource

The submodule Index allows safely manipulating indices into a finite set.

Sourcetype 'n t = 'n index
Sourceval of_int : 'n cardinal -> int -> 'n index

If n is the cardinal of the type-level set n, then of_int n casts an integer i of type int into an index: that is, of_int n i returns i at type n index. The integer i must lie in the semi-open interval [0, n). This is enforced by a runtime check. Calling of_int n i fixes the cardinal n.

Sourceval to_int : 'n index -> int

to_int casts an index i back to an ordinary integer value.

Sourceval iter : 'n cardinal -> ('n index -> unit) -> unit

iter n yield calls yield i successively for every index in the range [0, n), in increasing order.

Sourceval rev_iter : 'n cardinal -> ('n index -> unit) -> unit

rev_iter n yield calls yield i successively for every index in the range [0, n), in decreasing order.

Sourceval pred : 'n index -> 'n index option

pred i is the index immediately before i, if i is non-zero

Sourceexception End_of_set

This exception is raised by an iterator (created by enumerate) that is queried after it has been exhausted.

Sourceval enumerate : 'n cardinal -> unit -> 'n index

enumerate n returns an imperative iterator, which produces all indices in the range [0, n) in increasing order. Querying the iterator after all elements have been produced causes the exception End_of_set to be raised.

Sourceval rev_enumerate : 'n cardinal -> unit -> 'n index
Sourcemodule Unsafe : sig ... end

To implement clever datastructures (for instance using bit-packing), it is useful to manipulate indices as integers. See IndexSet or IndexMap for usage examples. Refrain from using it if you are not sure of what you are doing since this can break some modular abstraction.

Sourceval equal : 'n index -> 'n index -> bool
Sourceval compare : 'n index -> 'n index -> int
Sourceval minimum : 'n index -> 'n index -> 'n index
Sourceval maximum : 'n index -> 'n index -> 'n index
Sourceval init_seq : 'n cardinal -> ('n index -> 'a) -> 'a Stdlib.Seq.t
Sourceval rev_init_seq : 'n cardinal -> ('n index -> 'a) -> 'a Stdlib.Seq.t