def f (x : Nat) := if x = 0 then panic! "unexpected zero" else x - 1 #eval f 0 #eval f 10 def g (x : Nat) := if x = 0 then unreachable! else x - 1 #eval g 0 def h (x : Nat) := assert! x != 0; x - 1 #eval h 1 #eval h 0 def f2 (x : Nat) := dbg_trace "f2, x: {x}"; x + 1 #eval f2 10 def g2 (x : Nat) : IO Nat := do IO.println "g2 started"; pure (x + 1) #eval g2 10