Abstract identifiers with one polymorphic parameter.

type 'a t
val equal : 'a equal -> 'a t equal
val compare : 'a compare -> 'a t compare
val hash : 'a hash -> 'a t hash
val to_json : 'a to_json -> 'a t to_json

The REST interface

val of_json : 'a of_json -> 'a t of_json
val size_of : 'a size_of -> 'a t size_of

The serialization format

val write : 'a writer -> 'a t writer
val read : 'a reader -> 'a t reader