From 772a33bc5bde7628758e15bc733b34c12c92ccea Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 19 Mar 2002 01:25:58 +0000 Subject: [PATCH] .. original commit: 576331e2b2e483c2a0eb0a57a695c5d5d302913f --- collects/framework/specs.ss | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/collects/framework/specs.ss b/collects/framework/specs.ss index 0421d73..fe8da20 100644 --- a/collects/framework/specs.ss +++ b/collects/framework/specs.ss @@ -504,7 +504,8 @@ false? any? union symbols subclass?/c implementation?/c is-a?/c - listof) + listof vectorof + mixin-contract make-mixin-contract/<%> make-mixin-contract/%) (define-syntax (name stx) (syntax-case stx () @@ -570,4 +571,18 @@ (lambda (v) (and (vector? v) (andmap p (vector->list v)))))) - ) + + (define mixin-contract + (class? + . ->d . + subclass?/c)) + + (define (make-mixin-contract/<%> <%>) + ((and/f class? (implementation?/c <%>)) + . ->d . + subclass?/c)) + + (define (make-mixin-contract/% %) + ((and/f class? (subclass?/c %)) + . ->d . + subclass?/c)))