These comply- with the one exception noted below - with the R5RS specification.
(quote (datum)) -> <list>
'(datum) -> <list>
(operator operand1 ...) -> <object>
(lambda formals body) -> <procedure>
(define (name arg ...) body) -> #undefined
(define variable expr) -> #undefined
(set! variable expr) -> #undefined
(if test when-true when-false) -> <object>
(if test when-true) -> <object>
(while test body) -> <object>
Evaluate body while test returns #t.
(until test body) -> <object>
Evaluate body while test returns #f.
(begin expr ...) -> <object>
(cond clause1 clause2 ...) -> <object>
(case key clause1 clause2 ...)
(and test1 ...) -> <object>
(or test1 ... ) -> <object>
(case key clause1 clause2 ...) -> <object>
(let binding body) -> <object>
(let* binding body) -> <object>
(letrec binding body) -> <object>
(begin expr1 expr2 ...) -> <object>
(do ((var1 init1 step1 ) ... ) (test
expr ... ) command ...) -> <object>
(let var bindings body) -> <object>
(delay expr) -> <object>
(quasiquote (template)) -> <object>
`(template)) -> <object>