Does this help: 

(define-values (case1_x case1_y case1_z case1_w) 
  ((inst time-apply Integer Integer) (lambda () 10) '()))

(define-values (case2_x case2_y case2_z case2_w) 
  ((inst time-apply Integer Integer) (lambda (x) 10) '(10)))

(define-values (case3_x case3_y case3_z case3_w) 
  ((inst time-apply Integer String String) (lambda (x y) 10) '("hello" 
"world")))



On Feb 16, 2014, at 9:53 AM, Bloch Stephen wrote:

> OK, I figured out an annotation to get vector-map to work.  Now I'm trying to 
> use time-apply, and I don't understand why it's not type-checking.
> 
> > (:print-type time-apply)
> 
> (All (b a ...) (case-> ((-> b) Null -> (values (List b) Nonnegative-Integer 
> Nonnegative-Integer Nonnegative-Integer))
>         ((a ... a -> b) (List a ... a) -> (values (List b) 
> Nonnegative-Integer Nonnegative-Integer Nonnegative-Integer))))
> 
> > (define-type A Integer) ; or whatever
> 
> > (define-type B String)
> 
> > (ann time-apply ((A A -> B) (List A A) -> (Values (List B) 
> > Nonnegative-Integer Nonnegative-Integer Nonnegative-Integer)))
> 
> . Type Checker: Expected ((Integer Integer -> String) (List Integer Integer) 
> -> (values (List String) Nonnegative-Integer Nonnegative-Integer 
> Nonnegative-Integer)), but got (All (b a ...) (case-> ((-> b) Null -> (values 
> (List b) Nonnegative-Integer Nonnegative-Integer Nonnegative-Integer)) ((a 
> ... a -> b) (List a ... a) -> (values (List b) Nonnegative-Integer 
> Nonnegative-Integer Nonnegative-Integer)))) in: time-apply
> 
> Why doesn't the type I gave it match the second case of time-apply's type?
> 
> 
> Stephen Bloch
> sbl...@adelphi.edu
> GPG  key at http://adelphi.edu/sbloch/sbloch.pubkey.asc
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to