Renamed private version of define-generics to define-primitive-generics.

This commit is contained in:
Carl Eastlund 2013-07-08 15:59:24 -04:00
parent 8c00abbf48
commit 00ccb5850b
5 changed files with 24 additions and 22 deletions

View File

@ -14,11 +14,12 @@
;; provide a backwards compatible interface (just in case) ;; provide a backwards compatible interface (just in case)
;; i.e., exporting prop:ordered-dict as opposed to using a ;; i.e., exporting prop:ordered-dict as opposed to using a
;; generated hidden property. ;; generated hidden property.
(define-generics (ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict? (define-primitive-generics
#:defined-table dict-def-table (ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict?
#:defaults () #:defined-table dict-def-table
;; private version needs all kw args, in order #:defaults ()
#:define-contract #f) ;; private version needs all kw args, in order
#:define-contract #f)
(dict-iterate-least ordered-dict) (dict-iterate-least ordered-dict)
(dict-iterate-greatest ordered-dict) (dict-iterate-greatest ordered-dict)
(dict-iterate-least/>? ordered-dict key) (dict-iterate-least/>? ordered-dict key)

View File

@ -20,10 +20,11 @@
(let () (let ()
(local-require racket/private/generic) (local-require racket/private/generic)
(define-generics (foo gen:foo prop:foo foo? (define-primitive-generics
#:defined-table dummy (foo gen:foo prop:foo foo?
#:defaults ([number? (define (meth foo #:kw kw) kw)]) #:defined-table dummy
#:define-contract #f) #:defaults ([number? (define (meth foo #:kw kw) kw)])
#:define-contract #f)
(meth foo #:kw kw)) (meth foo #:kw kw))
(check-equal? (meth 3 #:kw 5) 5)) (check-equal? (meth 3 #:kw 5) 5))

View File

@ -1,8 +1,7 @@
#lang racket/base #lang racket/base
(require racket/contract/base (require racket/contract/base
racket/contract/combinator racket/contract/combinator
(rename-in "private/generic.rkt" "private/generic.rkt"
[define-generics define-generics/pre])
(for-syntax racket/base racket/local racket/syntax syntax/stx)) (for-syntax racket/base racket/local racket/syntax syntax/stx))
;; Convenience layer on top of racket/private/generic. ;; Convenience layer on top of racket/private/generic.
@ -66,10 +65,11 @@
(define/with-syntax gen-name (format-id #'name "gen:~a" #'name)) (define/with-syntax gen-name (format-id #'name "gen:~a" #'name))
(define/with-syntax prop-name (generate-temporary #'name)) (define/with-syntax prop-name (generate-temporary #'name))
(define/with-syntax table-name table) (define/with-syntax table-name table)
#'(define-generics/pre (name gen-name prop-name pred-name #'(define-primitive-generics
#:defined-table table-name (name gen-name prop-name pred-name
#:defaults [default ...] #:defined-table table-name
#:define-contract define-generics-contract) #:defaults [default ...]
#:define-contract define-generics-contract)
method ...))])) method ...))]))
;; generate a contract combinator for instances of a generic interface ;; generate a contract combinator for instances of a generic interface

View File

@ -3,11 +3,11 @@
(require racket/private/generic ; to avoid circular dependencies (require racket/private/generic ; to avoid circular dependencies
(for-syntax racket/base)) (for-syntax racket/base))
(define-generics (dict gen:dict prop:dict dict? (define-primitive-generics (dict gen:dict prop:dict dict?
#:defined-table dict-def-table #:defined-table dict-def-table
#:defaults () #:defaults ()
;; private version needs all kw args, in order ;; private version needs all kw args, in order
#:define-contract #f) #:define-contract #f)
(dict-ref dict key [default]) (dict-ref dict key [default])
(dict-set! dict key val) (dict-set! dict key val)
(dict-set dict key val) (dict-set dict key val)

View File

@ -10,8 +10,8 @@
(define-for-syntax (keyword-stx? v) (define-for-syntax (keyword-stx? v)
(keyword? (syntax->datum v))) (keyword? (syntax->datum v)))
(provide define-generics define/generic) (provide define-primitive-generics define/generic)
(define-syntax (define-generics stx) (define-syntax (define-primitive-generics stx)
(syntax-case stx () ; can't use syntax-parse, since it depends on us (syntax-case stx () ; can't use syntax-parse, since it depends on us
;; keyword arguments must _all_ be provided _in_order_. For the ;; keyword arguments must _all_ be provided _in_order_. For the
;; user-facing version of `define-generics', see racket/generic. ;; user-facing version of `define-generics', see racket/generic.