summaryrefslogtreecommitdiff
path: root/tdecl/tdecl-utils.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tdecl/tdecl-utils.scm')
-rw-r--r--tdecl/tdecl-utils.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/tdecl/tdecl-utils.scm b/tdecl/tdecl-utils.scm
new file mode 100644
index 0000000..0009eeb
--- /dev/null
+++ b/tdecl/tdecl-utils.scm
@@ -0,0 +1,16 @@
+;;; This file contains routines which generate the code for the
+;;; dictionaries used in the class system.
+
+(define (make-sel-node size i)
+ (**lambda '(x)
+ (if (eqv? size 1)
+ (**var 'x)
+ (**sel (tuple-constructor size) (**var 'x) i))))
+
+(define (make-compose f1 f2)
+ (**lambda '(x)
+ (**app f1 (**app f2 (**var 'x)))))
+
+(define (make-new-var name) ; name is a string
+ (create-definition *module* (string->symbol name) 'var))
+