#lang racket
(require [only-in plait test test/exn error print-only-errors])
(define-syntax my-cond
(syntax-rules ()
[(my-cond) (error 'my-cond "missing case")]
[(my-cond [q0 a0] [q1 a1] ...)
(if q0
a0
(my-cond [q1 a1] ...))]))
(define (len lst)
(my-cond
[(empty? lst) 0]
[(cons? lst) (+ 1 (len (rest lst)))]))
(test (len '(1 2 3)) 3)