///|
fn main {
let sim = @moonsim.Sim::new(seed=515UL)
let order = @moonsim.StateMachine::new("order", "created")
.add(@moonsim.transition("created", "pay", "paid", action="charge"))
.add(@moonsim.transition("paid", "ship", "shipped", action="notify"))
.add(@moonsim.transition("shipped", "deliver", "delivered"))
let events = ["pay", "ship", "refund", "deliver"]
for i in 0..