`type desc =`

1. `| Top`
2. `| Block of t list`
3. `| Function of {`
   1. `arity : int;`
   2. `pure : bool;`
   3. `res : t;`
   `}`

`and t = {`

1. `id : int;`
2. `mutable desc : desc;`

`}`
`val top : t`
`val block : t list -> t`
`val funct : arity:int -> pure:bool -> res:t -> t`
`val proxy : unit -> t`
`module Set : Stdlib.Set.S with type elt = t`
`val to_string : t -> string`
`val of_string : string -> t`
`module Store : sig ... end`
`module State : sig ... end`