(module main) (fn and_true () -> bool (and true true)) (fn and_false () -> bool (and true false)) (fn or_true () -> bool (or false true)) (fn not_false () -> bool (not false)) (fn and_short_circuits () -> bool (not (and false (= (/ 1 0) 0)))) (fn or_short_circuits () -> bool (or true (= (/ 1 0) 0))) (fn logic_ok () -> bool (if (and_true) (if (not (and_false)) (if (or_true) (if (not_false) (if (and_short_circuits) (or_short_circuits) false) false) false) false) false)) (fn main () -> i32 (if (logic_ok) 42 1)) (test "and true" (and_true)) (test "and false" (not (and_false))) (test "or true" (or_true)) (test "not false" (not_false)) (test "and short circuit" (and_short_circuits)) (test "or short circuit" (or_short_circuits)) (test "boolean logic summary" (logic_ok))