You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
413 B
Racket
16 lines
413 B
Racket
#lang racket/base
|
|
(require (for-syntax racket/base pollen/setup) pollen/tag)
|
|
(provide def/c (rename-out (top~ #%top)))
|
|
|
|
(define-syntax (top~ stx)
|
|
(syntax-case stx ()
|
|
[(_ . ID)
|
|
(setup:racket-style-top)
|
|
#'(#%top . ID)]
|
|
[(_ . ID)
|
|
#'(#%app make-default-tag-function 'ID)]))
|
|
|
|
(define-syntax (def/c stx)
|
|
(syntax-case stx ()
|
|
[(_ X) (identifier-binding #'X) #'X]
|
|
[(_ X) #'(#%top . X)])) |