callbacks added by C-Keen on Sun Apr 1 19:07:09 2012

(import foreign)

(define-external (foo) void
  (print "hah!"))

(foreign-declare "typedef void (*cb)(); cb f;")

(foreign-declare
 "void setCB(void (*cb)()){
    f=cb;
  }")

(foreign-declare
 "void callCB(){
   f();
 }")

(define set-cb (foreign-lambda void "setCB" (function void ())))

(define call-cb (foreign-lambda void "callCB"))  ;; Does not work
; (define call-cb (foreign-safe-lambda void "callCB")) ; works

(set-cb (location foo))

(print "Set cb")

(call-cb)

(print "done.")