Zed_macro

`sig
type 'a t
val create : 'a list -> 'a Zed_macro.t
val recording : 'a Zed_macro.t -> bool React.signal
val get_recording : 'a Zed_macro.t -> bool
val set_recording : 'a Zed_macro.t -> bool -> unit
val cancel : 'a Zed_macro.t -> unit
val count : 'a Zed_macro.t -> int React.signal
val get_count : 'a Zed_macro.t -> int
val add : 'a Zed_macro.t -> 'a -> unit
val contents : 'a Zed_macro.t -> 'a list
val counter : 'a Zed_macro.t -> int React.signal
val get_counter : 'a Zed_macro.t -> int
val set_counter : 'a Zed_macro.t -> int -> unit
val add_counter : 'a Zed_macro.t -> int -> unit
end`