sig type ('a, 's) t = Done | Skip of 's | Yield of 'a * 's val sexp_of_t : ('a -> Sexplib.Sexp.t) -> ('s -> Sexplib.Sexp.t) -> ('a, 's) Sequence.Step.t -> Sexplib.Sexp.t end