   (declare (indent 1))
   (let ((print-circle t))
     `(wandbox-compile :name "CLISP"
-                      :code (prin1-to-string
-                             `(let ((*print-circle* t))
-                                (format t "~{~s~^ ;~%~}"
-                                        (multiple-value-list (progn ,@form)))))
+                      :code ,(prin1-to-string
+                              `(let ((*print-circle* t))
+                                 (format t "~{~s~^ ;~%~}"
+                                         (multiple-value-list (progn ,@form)))))
                       ,@options)))
 
 ;;;###autoload

                        (return (cdr (assoc "switches" x))))))
          ",")))

(defun* wandbox-build-request-data (&rest profile &key lang name file &allow-other-keys)
  "Build JSON data to post to Wandox API.
PROFILE is property list. e.g. (:compiler COMPILER-NAME :options OPTS ...)"
  (setq profile
        (wandbox-merge-plist profile
                             (if lang (wandbox-find-profile :lang lang))
                             (if name (wandbox-find-profile :name name))
                             (if (and file (file-exists-p file))
                                 (wandbox-fetch-as-profile file))))
  (dolist (f wandbox-precompiled-hook)
    (setq profile (wandbox-merge-plist profile (apply f profile))))

  (labels ((join-as-string (list separator)
             (mapconcat #'(lambda (x) (format "%s" x)) list separator))
           (val (x)

                   ("stdin"    . ,(val :stdin))
                   ("compiler-option-raw" . ,(raw :compiler-option))
                   ("runtime-option-raw"  . ,(raw :runtime-option))
                   ("save" . ,(bool :save)))))
      (prog1
          (json-encode alist)
        ;; debug log
