sig
  val create : string -> t list -> unit
  val extend : string -> t list -> unit
  val states : t -> t list
  val name : t -> string option
  val unmarshal : string option -> t -> unit
  val after_load : unit -> unit
end