(if (not (symbol? var))
(macro-error "expected symbol as dotimes variable"))
`(let ((,var 0))
- (while (< ,var ,count)
+ (while ((guile-primitive <) ,var ,count)
,@body
- (setq ,var (1+ ,var)))
+ (setq ,var ((guile-primitive 1+) ,var)))
,@(if (= (length args) 3)
(list (caddr args))
'()))))))
`(let (,var)
(without-void-checks (,tailvar)
(lexical-let ((,tailvar ,iter-list))
- (while (not (null ,tailvar))
- (setq ,var (car ,tailvar))
+ (while ((guile-primitive not)
+ ((guile-primitive null?) ,tailvar))
+ (setq ,var ((guile-primitive car) ,tailvar))
,@body
- (setq ,tailvar (cdr ,tailvar)))
+ (setq ,tailvar ((guile-primitive cdr) ,tailvar)))
,@(if (= (length args) 3)
(list (caddr args))
'())))))))))