`val is_pure : string -> bool`
`val exists : string -> bool`
`type kind = [`

1. `| `Pure`
2. `| `Mutable`
3. `| `Mutator`

`]`
`type kind_arg = [`

1. `| `Shallow_const`
2. `| `Object_literal`
3. `| `Const`
4. `| `Mutable`

`]`
`type condition = [`

1. `| `If of string`
2. `| `Ifnot of string`

`]`
`type t = [`

1. `| `Requires of string list`
2. `| `Provides of string * kind * kind_arg list option`
3. `| `Version of ((int -> int -> bool) * string) list`
4. `| `Weakdef`
5. `| `Always`
6. `| `Alias of string`
7. `| `Deprecated of string`
8. `| condition`

`]`
`val kind : string -> kind`
`val kind_args : string -> kind_arg list option`
`val register : string -> kind -> kind_arg list option -> int option -> unit`
`val arity : string -> int`
`val has_arity : string -> int -> bool`
`val alias : string -> string -> unit`
`val resolve : string -> string`
`val add_external : string -> unit`
`val get_external : unit -> Stdlib.StringSet.t`
`val need_named_value : string -> bool`
`val register_named_value : string -> unit`
`val reset : unit -> unit`