sig
  type ('variant, 'a) t = ('variant, 'a) Flat_array.Slot.t
  val equal : ('v, 'a) t -> ('v, 'a) t -> bool
  val t0 : ([> `S0 of 'a ], 'a) t
  val t1 : ([> `S1 of 'a ], 'a) t
  val t2 : ([> `S2 of 'a ], 'a) t
  val t3 : ([> `S3 of 'a ], 'a) t
  val t4 : ([> `S4 of 'a ], 'a) t
  val t5 : ([> `S5 of 'a ], 'a) t
  val t6 : ([> `S6 of 'a ], 'a) t
  val t7 : ([> `S7 of 'a ], 'a) t
  val t8 : ([> `S8 of 'a ], 'a) t
  val sexp_of_t :
    ('variant -> Sexplib.Sexp.t) ->
    ('-> Sexplib.Sexp.t) -> ('variant, 'a) t -> Sexplib.Sexp.t
end