VERY IMPORTANT: add quasiquote and list macro

;; list macro
(defmacro list
  [()()]
  [(a) (cons ~a ())]
  [(a . b) (cons ~a (list ~@b))])
;; quasiquote macro
(defmacro quasiquote
  ([(#unquote a)] ~a)
  ([[a]] [list (quasiquote ~a)])
  ([[a . b]] [list (quasiquote ~a) (quasiquote ~@b)])
  ([a] (quote ~a)))