interesting warning added by C-Keen on Thu Apr 17 15:08:51 2014

;; sign a string with a given private key file and return the result as
;; a base64 encoded string
(define (ssl-sign str private-key-file . o)
  (let* ((algorithm (if (pair? o) (car o) 'sha1))
         (cmd (sprintf "openssl dgst -sign ~A -~A"
                       (shell-escape private-key-file)
                       (ssl-algorithm-name algorithm))))
    (receive (in out pid) (process cmd)
      (display str out)
      (flush-output out)
      (close-output-port out)
      (let ((res
             (base64-encode-string
              (read-string #f in))))
        (process-wait pid)
        res))))

;; triggers
;; Warning: in local unknown procedure,
;;  in toplevel procedure `ssl-sign':
;;  expected in `let' binding of `t24' a single result, but were given 3 results

;; The code in question is (csc -debug 2 t.scm)

(set! ssl-sign
  (##core#lambda
    (str1 private-key-file2 . o3)
    (let ((algorithm4 (if (pair? o3) (car o3) 'sha1)))
      (let ((cmd5 (let ((out613 (open-output-string)))
                    (let ((t19 (let ((out714 out613))
                                 (let ((t15 (##sys#check-output-port out714 '#t 'sprintf)))
                                   (let ((t16 (##sys#print '"openssl dgst -sign " '#f out714)))
                                     (let ((t17 (##sys#print
                                                  (shell-escape private-key-file2)
                                                  '#f
                                                  out714)))
                                       (let ((t18 (##sys#print '" -" '#f out714)))
                                         (##sys#print
                                           (ssl-algorithm-name algorithm4)
                                           '#f
                                           out714))))))))
                      (get-output-string out613)))))
        (let ()
          (##sys#call-with-values
            (##core#lambda () (process cmd5))
            (##core#lambda
              (in20 out21 pid22)
              (let ((t25 (display str1 out21)))
                (let ((t26 (flush-output out21)))
                  (let ((t27 (close-output-port out21)))
                    (let ((res23 (base64-encode-string (read-string '#f in20))))
                      (let ((t24 (process-wait pid22))) res23))))))))))))