This commit also fixes a broken test Closes #617 The following operators are now lazy: `<|>`, `>>`, `*>`, `<*`, `<*>`
14 lines
300 B
Text
14 lines
300 B
Text
partial def loop (x : Nat) : Nat :=
|
|
dbg_trace x
|
|
loop (x+1) + 1
|
|
|
|
def act1 : IO Unit :=
|
|
throw (IO.userError "act1 failed")
|
|
|
|
def act2 : IO Unit :=
|
|
act1 *> IO.println (loop 0) -- `loop 0` should not be executed
|
|
|
|
def act3 : IO Unit :=
|
|
try act2 catch ex => IO.println s!"error: {ex}"
|
|
|
|
#eval act3
|