Fix.Indexing
type 'n cardinal
val cardinal : 'n cardinal -> int
val is_fixed : 'n cardinal -> bool
type (!_, !_) eq =
| Refl : ('a, 'a) eq
val equal : 'n cardinal -> 'm cardinal -> ('n, 'm) eq option
val assert_equal : 'n cardinal -> 'm cardinal -> ('n, 'm) eq
type 'n index = private int
module type CARDINAL = sig ... end
module Const (X : sig ... end) : CARDINAL
val const : int -> (module CARDINAL)
module Empty : CARDINAL
module Gensym () : sig ... end
type (!'l, !'r) either =
| L of 'l
| R of 'r
module type SUM = sig ... end
module Sum (L : CARDINAL) (R : CARDINAL) : sig ... end
val sum : 'l cardinal -> 'r cardinal -> (module SUM with type l = 'l and type r = 'r)
module Index : sig ... end
type ('n, 'a) vector
module Vector : sig ... end