(define (copy-string string) (let ((data (string->blob string))) ((foreign-lambda* (c-pointer char) ((blob src) (int size)) "char *dest = malloc(size + 1); memcpy(dest, src, size); dest[size] = '\\0'; C_return(dest);") data (blob-size data))))