///|
fn main {
println("MoonTraceKit demo")
println("case=out_of_order_delivery")
let events = @causal.sample_out_of_order_events()
let after_first = @causal.CausalBuffer::new().push(events[0])
println(after_first.to_json())
let after_second = after_first.push(events[1]).flush_ready()
println(after_second.to_json())
println("case=concurrent_edits")
let concurrent = @causal.sample_concurrent_events()
let conflicts = @causal.find_concurrent_pairs(concurrent)
for pair in conflicts {
println(pair.to_json())
}
println(@causal.causal_frontier(concurrent).to_json())
println("case=linear_reply")
let linear = @causal.sample_linear_events()
println(@causal.compare_events(linear[0], linear[1]).to_json())
}