home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacHaskell 2.2 / tdecl / tdecl-utils.scm < prev    next >
Encoding:
Text File  |  1994-09-27  |  935 b   |  34 lines  |  [TEXT/CCL2]

  1. ;;; This file contains routines which generate the code for the
  2. ;;; dictionaries used in the class system.
  3.  
  4. (define (make-sel-node size i)
  5.   (**lambda '(x)
  6.      (if (eqv? size 1)
  7.      (**var 'x)
  8.      (**sel (tuple-constructor size) (**var 'x) i))))
  9.  
  10. (define (make-compose f1 f2)
  11.   (**lambda '(x)
  12.       (**app f1 (**app f2 (**var 'x)))))
  13.  
  14. (define (make-new-var name)  ; name is a string
  15.   (make var (name (string->symbol name))
  16.         (module *module-name*)
  17.         (unit *unit*)
  18.         (toplevel? '#t)
  19.         (exported? '#t)))
  20.  
  21. (define (make-runtime-var parent suffix ty)  ; name is a string
  22.   (let ((new-name (string->symbol
  23.             (string-append
  24.              (symbol->string (def-name parent))
  25.              suffix))))
  26.     (make var (name new-name)
  27.           (module (def-module parent))
  28.           (unit (def-unit parent))
  29.           (toplevel? '#t)
  30.           (exported? '#t)
  31.           (interface? (interface-module? *module*))
  32.           (type (**gtype '() (**ntycon ty '()))))))
  33.  
  34.