;; self-referential structure from socket egg (define-foreign-record-type (ai "struct addrinfo") (constructor: alloc-ai) (destructor: free-ai) ; similar name! (int ai_flags ai-flags set-ai-flags!) (int ai_family ai-family set-ai-family!) (int ai_socktype ai-socktype set-ai-socktype!) (int ai_protocol ai-protocol set-ai-protocol!) (int ai_addrlen ai-addrlen) ((c-pointer sa) ai_addr ai-addr) ;; non-null? (c-string ai_canonname ai-canonname) ((c-pointer ai) ai_next ai-next))