From 4ee37340524d3da8e99e4dd549dfcd232ec8c716 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Wed, 21 Apr 2010 11:41:26 -0400 Subject: [PATCH] icfp-examples no longer errors original commit: 86c6f3e9c06de95e950cc3a55b3235f44be78a8e --- collects/typed-scheme/typecheck/tc-metafunctions.ss | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/collects/typed-scheme/typecheck/tc-metafunctions.ss b/collects/typed-scheme/typecheck/tc-metafunctions.ss index 9182a2ff..0bf70fb6 100644 --- a/collects/typed-scheme/typecheck/tc-metafunctions.ss +++ b/collects/typed-scheme/typecheck/tc-metafunctions.ss @@ -62,11 +62,13 @@ (d/c (abo xs idxs f) ((listof identifier?) (listof name-ref/c) Filter/c . -> . Filter/c) - (define (lookup y) - (for/first ([x xs] [i idxs] #:when (free-identifier=? x y)) i)) + (d/c (lookup y) + (identifier? . -> . (or/c #f integer?)) + (for/first ([x xs] [i idxs] #:when (free-identifier=? x y)) i)) (define-match-expander lookup: (syntax-rules () - [(_ i) (app lookup (? values i))])) + [(_ i) (or (? identifier? (app lookup (? values i))) + i)])) (define (rec f) (abo xs idxs f)) (define (sb-t t) t) (filter-case (#:Type sb-t #:Filter rec) f