type 'a state = string list * 'a StrMap.tval step : 'a1 state -> (string * 'a1) -> 'a1 stateval emit : 'a1 StrMap.t -> (string * 'a1) list -> string -> (string * 'a1) listval read : 'a1 state -> (string * 'a1) listval all : (string * 'a1) list -> (string * 'a1) list