﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
805	case-lambda is unhygienic	Moritz Heidkamp	Christian Kellermann	"{{{case-lambda}}} unhygienically expands to {{{length}}}. To wit:

{{{
#;1> (module foo (foo) (import (only scheme quote) (prefix chicken c/) (prefix scheme s/)) (s/define foo (c/case-lambda ((a) a) ((a b) b))))

Warning: reference to possibly unbound identifier `length' in:
Warning:    foo

Error: module unresolved: foo
}}}

I tried the following fix but it doesn't seem to change a thing:

{{{
diff --git a/chicken-syntax.scm b/chicken-syntax.scm
index 08bede2..a6c70d4 100644
--- a/chicken-syntax.scm
+++ b/chicken-syntax.scm
@@ -785,11 +785,12 @@
 	   (%>= (r '>=))
 	   (%eq? (r 'eq?))
 	   (%car (r 'car))
-	   (%cdr (r 'cdr)))
+	   (%cdr (r 'cdr))
+	   (%length (r 'length)))
       `(##core#lambda
 	,(append minvars rvar)
 	(##core#let
-	 ((,lvar (length ,rvar)))
+	 ((,lvar (,%length ,rvar)))
 	 ,(fold-right
 	   (lambda (c body)
 	     (##sys#decompose-lambda-list

}}}

Does anyone know what's going on?"	defect	closed	minor	4.9.0	core libraries	4.7.x	fixed			
