aboutsummaryrefslogtreecommitdiff
path: root/src/guile/skribilo/resolve.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guile/skribilo/resolve.scm')
-rw-r--r--src/guile/skribilo/resolve.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/guile/skribilo/resolve.scm b/src/guile/skribilo/resolve.scm
index c100b62..cbb939d 100644
--- a/src/guile/skribilo/resolve.scm
+++ b/src/guile/skribilo/resolve.scm
@@ -72,13 +72,16 @@
(define-method (do-resolve! (ast <pair>) engine env)
(let Loop ((n* ast))
(cond
- ((pair? n*)
+ ((null? n*)
+ ast)
+ ((list? n*)
(set-car! n* (do-resolve! (car n*) engine env))
(Loop (cdr n*)))
- ((not (null? n*))
- (error 'do-resolve "illegal argument" n*))
+ ((pair? n*)
+ (set-car! n* (do-resolve! (car n*) engine env))
+ (set-cdr! n* (do-resolve! (cdr n*) engine env)))
(else
- ast))))
+ (error 'do-resolve "illegal argument" n*)))))
(define-method (do-resolve! (node <node>) engine env)