I'm using Guile 2.0.3.87-b798 on x86_64-unknown-linux-gnu. Guile's compiler fails to maintain the distinction between the nil object and the empty list in some cases:
scheme@(guile-user)> (equal? (cons #t #nil) (cons #t '())) $1 = #t scheme@(guile-user)> (eq? (cdr (cons #t #nil)) (cdr (cons #t '()))) $2 = #t scheme@(guile-user)> (compile '(cons #t #nil) #:from 'scheme #:to 'tree-il) $3 = #<tree-il (apply (toplevel cons) (const #t) (const #nil))> scheme@(guile-user)> (compile '(cons #t #nil) #:from 'scheme #:to 'glil) $4 = #<glil (program () (std-prelude 0 0 #f) (label :LCASE136) (const #t) (call list 1) (call return 1)>) -- Inteligenta persono lernas la lingvon Esperanton rapide kaj facile. Esperanto estas moderna, kultura lingvo por la mondo. Simpla, fleksebla, belsona, Esperanto estas la praktika solvo de la problemo de universala interkompreno. Lernu la interlingvon Esperanton!