///|
fn main {
  let output = try {
    let f = @belief.frame(["clear", "blocked"])
    let optical = @belief.simple_support(f, 1, 0.8)
    let sonar = @belief.simple_support(f, 2, 0.6)
    let result = @belief.pipeline(
      [
        @belief.source("optical", optical, reliability=0.9),
        @belief.source("sonar", sonar, reliability=0.8),
      ],
      Yager,
    )
    Json::object({
      "workflow": Json::string("sensor-fusion"),
      "mass": result.mass().to_json(),
      "raw_pair_conflict": Json::number(result.steps()[0].conjunctive_conflict),
      "conflict": Json::number(result.mass().conflict()),
      "ignorance": Json::number(result.mass().ignorance()),
      "clear_plausibility": Json::number(result.mass().plausibility(1)),
    })
  } catch {
    _ => abort("sensor example failed")
  }
  println(output.stringify())
}