;; a temporary file to test define-c helper syntax
(import (scheme base) (scheme write))

(define-syntax
  define-c:inline
  (er-macro-transformer
    (lambda (expr rename compare)
      (let ((fnc (car expr))
            (args "object z") ;; TODO: get from expr
            (inline-body "TODO"))
      `(define-c ,fnc
         ,(string-append 
            "(void *data, int argc, closure _, object k, " 
            args
            ")")
         ,(string-append 
            "(void *data, object ptr, " 
            args
            ")"))))))
;  (define-c truncate
;    "(void *data, int argc, closure _, object k, object z)"
;    " return_exact_double_op(data, k, (int), z); "
;    "(void *data, object ptr, object z)"
;    " return_exact_double_op_no_cps(data, ptr, (int), z);")