'a t is a type of state that holds a value of type
'a, and can be constructed from the base context of type
type 'a state = 'a t
uuid is a string literal representing an UUID.
It should have the form:
X is a hex-digit, e.g.,
val declare : ?inspect:( 'a -> Core_kernel.Sexp.t ) -> uuid:uuid -> name:string -> ( Bap.Std.project -> 'a ) -> 'a t
declare ~inspect ~uuid ~name make declares a state with the given
name. The name is not required to be unique, while
uuid is obviously required to be unique.
uuid type description for the uuid representation. A new
uuid can be obtained in the Linux system is provided by the
inspect state value introspects given
value of the state.
val name : 'a t -> string
name state a state name that was given during the construction.