(bind-func copy:[List{!a}*,List{!a}*]* (lambda (lst) (let ((orig lst) (cpy null)) (while (not (null? orig)) (set! cpy (cons (car orig) cpy)) (set! orig (cdr orig))) (reverse cpy))))