diff --git a/semen.scm b/semen.scm index 2751564..1e80b2b 100644 --- a/semen.scm +++ b/semen.scm @@ -2,7 +2,8 @@ (declare (unit semen) (uses sex-macros - sex-modules)) + sex-modules + utils)) (import (chicken string) @@ -112,12 +113,6 @@ (semen-walk-form (car new-form) walk-fn env) (semen-walk-form (cdr new-form) walk-fn env))))))) -(define (recons old-cons new-car new-cdr) - (if (and (eq? new-car (car old-cons)) - (eq? new-cdr (cdr old-cons))) - old-cons - (cons new-car new-cdr))) - ;;; Typdef (define (process-typedef new-type target acc) diff --git a/utils.scm b/utils.scm index 942da8a..c4fb8e8 100644 --- a/utils.scm +++ b/utils.scm @@ -36,3 +36,10 @@ (list) lists) 1)) + +;;; Reconstruct form +(define (recons old-cons new-car new-cdr) + (if (and (eq? new-car (car old-cons)) + (eq? new-cdr (cdr old-cons))) + old-cons + (cons new-car new-cdr)))