(define-module (wm) #:use-module (system foreign) #:export (wm-init wm-quit)) (define libschewm (dynamic-link "libschewm")) (define (int-as-bool i) (not (eq? 0 i))) (define (schewm-func return-type name args) (pointer->procedure return-type (dynamic-func name libschewm) args)) (define (wm-init) (let ((c/wm-init (schewm-func int "wm_init" '()))) (int-as-bool (c/wm-init)))) (define (wm-quit s) (let ((c/wm-quit (schewm-func void "wm_quit" (list '*)))) (c/wm-quit (string->pointer s))))