patch to foreigners egg to trigger the bug added by C-Keen on Mon Jul 2 15:12:01 2018

diff -bup ../../../4/foreigners/trunk/foreigners.scm foreigners.scm
--- ../../../4/foreigners/trunk/foreigners.scm  2018-06-26 12:56:21.529909822 +0200
+++ foreigners.scm      2018-07-02 15:10:51.870303853 +0200
@@ -11,6 +11,7 @@
   ;; -> (let ((%begin (r 'begin)) (%car (r 'car)) (%cdr (r 'cdr)))
   ;;      body ...)
   (define-syntax with-renamed
+    (er-macro-transformer
     (lambda (f r c)
       (##sys#check-syntax 'with-renamed f '(_ _ (_ . _) . _))
       (let ((renamer (cadr f))
@@ -22,17 +23,17 @@
           ,(map (lambda (x)
                   `(,(munger x) (,renamer ',x)))
                 identifiers)
-          ,@body)))))
+          ,@body))))))

 ;;; define-foreign-record-type

 (module foreigners
   (define-foreign-record-type define-foreign-enum-type)

-  (import scheme chicken foreign)
+  (import scheme (chicken base) (chicken foreign) (chicken syntax))

   (define-syntax define-foreign-record-type
-    (lambda (f r c)
+    (er-macro-transformer (lambda (f r c)
       (##sys#check-syntax 'define-foreign-record-type f '(_ _ . _))

       (let ((name (cadr f))
@@ -174,17 +175,17 @@
                                 ;; [else (syntax-error 'define-foreign-record
                                 ;;                     "bad slot spec" slot)]
                                 )))
-                        slots))))))))
+                        slots)))))))))

 ;;; define-foreign-enum-type

-(require-library matchable)
 (import-for-syntax matchable)
 (import-for-syntax renaming)

 ;; Ignored case where typename is a symbol, for now.
 ;; Permit string or symbol as REALTYPE in ENUMSPEC.
 (define-syntax define-foreign-enum-type
+  (er-macro-transformer
   (lambda (f r c)
     (match
      f
@@ -254,7 +255,7 @@
      ; handle missing default-value
      ((_ (type-name native-type) . rest)
       `(define-foreign-enum-type (,type-name ,native-type '()) ,@rest))
-     ))))
+     )))))


 ;;; Testing