type sl = (string * Data.v) listtype t = {id : string;inputs : (Data.ident * Data.t) list;outputs : (Data.ident * Data.t) list;reset : unit -> unit;kill : string -> unit;save_state : int -> unit;restore_state : int -> unit;init_inputs : sl;init_outputs : sl;step : sl -> sl;step_dbg : sl -> e -> (sl -> e -> e) -> e;
}