///|
/// Run a side effect whose failure must not abort the caller. Supervision
/// and lifecycle progress are defined to survive a broken disk, a dead
/// peer or a vanished process, so every best-effort step routes through
/// here instead of hand-rolling another try/catch pair.
pub fn discard(f : () -> Unit raise) -> Unit {
  try f() catch {
    _ => ()
  } noraise {
    _ => ()
  }
}