Quasiquote Using Syntax-Rules

Simple, non-nestable quasiquote.

Without further ado:

(define-syntax quasiquote
  (syntax-rules (unquote unquote-splicing)
    ((_ ((unquote x) . xs))          (cons x (quasiquote xs)))
    ((_ ((unquote-splicing x) . xs)) (append x (quasiquote xs)))
    ((_ (unquote x))                 x)
    ((_ (unquote-splicing x))        x)
    ((_ (x  . xs))                   (cons (quasiquote x) (quasiquote xs)))
    ((_ x)                           (quote x))))

contact