41 lines
1.2 KiB
Racket
41 lines
1.2 KiB
Racket
#lang typed/racket
|
|
|
|
(require #|"graph-6-rich-returns.lp2.rkt"
|
|
"../lib/low.rkt"
|
|
"graph.lp2.rkt"
|
|
"get.lp2.rkt"
|
|
"../type-expander/type-expander.lp2.rkt"
|
|
(for-syntax (submod "../type-expander/type-expander.lp2.rkt" expander))
|
|
"../type-expander/multi-id.lp2.rkt"
|
|
"structure.lp2.rkt" ; debug
|
|
"variant.lp2.rkt" ; debug
|
|
"fold-queues.lp2.rkt"; debug
|
|
"rewrite-type.lp2.rkt"; debug
|
|
"meta-struct.rkt"; debug
|
|
"../lib/debug-syntax.rkt"
|
|
racket/splicing|#
|
|
(for-syntax syntax/parse)
|
|
(for-syntax syntax/parse/experimental/template))
|
|
|
|
;(syntax-local-lift-expression #`(browse-syntaxes (list #'e #'b)))
|
|
(define-syntax (d-exp stx)
|
|
(syntax-parse stx
|
|
[(_ (_ (e) _) b)
|
|
(displayln (free-identifier=? #'e #'b))
|
|
#'(void)]))
|
|
|
|
(define-syntax (frozen stx)
|
|
(syntax-parse stx
|
|
[(_ def b)
|
|
#`(begin def ;#,(datum->syntax #'a (syntax->datum #'(define def val)))
|
|
(d-exp def b))]))
|
|
|
|
(define-syntax (goo stx)
|
|
(syntax-parse stx
|
|
[(_ b)
|
|
(define i1 (make-syntax-delta-introducer #'te #'b))
|
|
(define i2 (make-syntax-delta-introducer #'b #'te))
|
|
#`(frozen (define (#,(i2 #'te)) 1)
|
|
#,(i1 #'b))]))
|
|
|
|
(provide goo) |