Thanks to C-Keen (IRC). Change (import curl) to (use curl) in the repl. - import just imports the namespace but does not load code - For compiled code is better to use "use" instead of "import" #;1> (use curl) ; loading ./curl.import.so ... ; loading /usr/local/lib/chicken/7/chicken.import.so ... ; loading /usr/local/lib/chicken/7/foreign.import.so ... ; loading ./sclj.import.scm ... ; loading /usr/local/lib/chicken/7/ports.import.so ... ; loading /usr/local/lib/chicken/7/srfi-4.import.so ... ; loading /usr/local/lib/chicken/7/extras.import.so ... ; loading /usr/local/lib/chicken/7/lolevel.import.so ... ; loading /usr/local/lib/chicken/7/easyffi.import.so ... ; loading ./curl.so ... Note: the following toplevel variables are referenced but unbound: plist-vals plist-keys plist->alist #;2> (curl-get "http://httpbin.org/get") "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"Mozzila/4.0\"\n }, \n \"origin\": \"174.172.155.241\", \n \"url\": \"http://httpbin.org/get\"\n}\n" #;3>