I think you don't want those #{} annotations in the function definition: > (define (sphere3d #:posn #{ctr.posn : (Vectorof Real)} #:r #{r : > Nonnegative-Real} #:color [#{color : Plot-Color} "black"])
The following typechecks OK for me: (define (sphere3d #:posn ctr.posn #:r r #:color [color "black"]) In other words, when you annotate the function using `(: sphere3d ___)`, you've told Typed Racket all it needs to know about the function type. Then you can write the function definition just as you would in untyped Racket. ____________________ Racket Users list: http://lists.racket-lang.org/users