(import (chicken format)) (define return-flonum-values (foreign-primitive () "C_word* ab = C_alloc(C_SIZEOF_FLONUM * 4), *a = ab;" "C_word av[2 + 4] = {" " C_SCHEME_UNDEFINED, C_k," " C_flonum(&a, 0.25)," " C_flonum(&a, 0.5)," " C_flonum(&a, 0.75)," " C_flonum(&a, 1.0)" "};" "C_values(2 + 4, av);")) (let-values (((r g b a) (return-flonum-values))) (printf "~A ~A ~A ~A~N" r g b a))