#lang racket
(require [only-in plait test test/exn error print-only-errors])
(define-syntax or-2
(syntax-rules ()
[(_ e1 e2)
(if e1 e1 e2)]))
(test (or-2 (member 'y '(x y z)) "not found") '(y z))
(define v #f)
(define (toggle) (set! v (not v)) v) ;; side-effect
(test (or-2 (toggle) 'else) #t)