123456789101112131415161718192021open!CoremoduletypeS=sigtypetvalname:stringvalinitialize:unit->tOr_error.tvalupdate:t->string->unitmoduleFor_testing:sig(* Meant to let us see how many times [update] is called. *)valdump_testing_state:t->stringendendtypet=|T:{state:'a;strategy:(moduleSwithtypet='a)}->t