(bind-func pop:[!a,List{!a}*]* "pop first element from list (modifies list in-place)" (lambda (lst) (if (null? lst) (convert null) (let ((element (car lst))) (set! lst (cdr lst)) element))))