See the thread here
http://lists.gnu.org/archive/html/guile-user/2012-11/msg00032.html
In Guile 2.0.6
(define f (case-lambda*
((x #:optional y) 1)
((x #:key y) 2)
((x y #:key z) 3)))
(f 1 2 #:z 3) -> Odd length of keyword argument list
Also
(define g (case-lambda*
((a #:key x) 1)
((a b c #:key x) 3)))
(g 1 2 3) - > Invalid keyword
This behavior doesn't seem useful and doesn't follow from the doc on
case-lambda*, which is rather vague and lacks examples.
The case-lambda* test in tree-il.test also fails on the REPL
(let ((f (case-lambda*
((x #:optional y) 1)
((x #:key y) 2)
((x y #:key z) 3))))
(list (f 1)
(f 1 2)
(f #:y 2)
(f 1 2 #:z 3)))
-> Odd length of keyword argument list
Thanks,
Daniel