diff options
Diffstat (limited to 'src/guile/skribilo/resolve.scm')
-rw-r--r-- | src/guile/skribilo/resolve.scm | 11 |
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) |