///|
fn main {
let engine = @incr.Engine()
let numerator = engine.cell(42)
let denominator = engine.cell(2)
let quotient = engine.thunk(() => numerator.force() / denominator.force())
let safe = engine.thunk(() => {
if denominator.force() == 0 {
None
} else {
Some(quotient.force())
}
})
for value in [2, 0, 3, 3] {
denominator.set(value)
println(
"denominator=\{value}, result=\{Repr(safe.force())}, evaluations=\{engine.stats().evaluations}",
)
}
engine.dispose()
}