`type _ t````=`

`|` `New_single : [ `New_single ] t`
`|` `New_group : [ `New_group ] t`
`|` `New_group_point : [ `New_group_point ] t`
`|` `End_of_header : [ `End_of_header ] t`
`|` `Epoch : [ `Epoch ] t`
`|` `Need_more_data : [ `Error ] t`
`|` `Invalid_message_type_or_subtype : [ `Error ] t`
`|` `Message_length_too_short : [ `Error ] t`

``
`include sig ... end`
`val sexp_of_t : ('v_x__001_ ‑> Base.Sexp.t) ‑> 'v_x__001_ t ‑> Base.Sexp.t`
`type packed````=`

`|` `T : _ t ‑> packed`

``

`all_of_packed` does not include the error cases.

`include sig ... end`
`val sexp_of_packed : packed ‑> Base.Sexp.t`
`val all_of_packed : packed list`
`module Packed : sig ... end`
`val to_wire_exn : _ t ‑> char`
`val of_wire : char ‑> packed`

`{to,of}_index_exn` provide dense packed integers starting from 0, suitable for indexing into an array.

`val to_index_exn : _ t ‑> int`
`val of_index_exn : int ‑> packed`
`val max_index : int`