lean4-htt/tests/lean/run/tryPureCoe.lean
2020-10-09 18:21:45 -07:00

48 lines
968 B
Text

new_frontend
def m1 : IO Bool :=
pure true
def p (x : Nat) : Bool :=
x > 0
def tst1 : IO Bool :=
true <&&> m1
def tst2 (x : Nat) : IO Bool :=
x = 0 <&&> m1
def tst3 (x : Nat) : IO Unit :=
whenM (m1 <&&> x > 0) $
throw $ IO.userError "test"
def tst4 (x : Nat) : IO Unit :=
whenM (x > 0 <&&> m1) $
throw $ IO.userError "test"
def tst5 (x : Nat) : IO Unit :=
whenM (p x <&&> m1) $
throw $ IO.userError "test"
def tst6 (x : Nat) : IO Unit :=
whenM (p x <&&> id m1) $
throw $ IO.userError "test"
def tst7 (x : Nat) : IO Unit := do
if (← m1) && x > 0 then
throw $ IO.userError "test"
def tst8 (x : Nat) : IO Unit := do
if x > 0 && (← m1) then
throw $ IO.userError "test"
def tst9 (x : Nat) : IO Unit := do
if p x && (← m1) then
throw $ IO.userError "test"
def tst10 (x : Nat) : IO Unit := do
if p x && (← id m1) then
throw $ IO.userError "test"
def tst11 (x : Nat) : IO Unit := do
if p x && id (← m1) then
throw $ IO.userError "test"