<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>Here’s the program:<br><div><div><font face="Courier New">#lang typed/racket</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(require plot/typed plot/typed/utils)</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(: vector-x ((Vectorof Real) -> Real))</font></div><div><font face="Courier New">(: vector-y ((Vectorof Real) -> Real))</font></div><div><font face="Courier New">(: vector-z ((Vectorof Real) -> Real))</font></div><div><font face="Courier New">(define (vector-x v) (vector-ref v 0))</font></div><div><font face="Courier New">(define (vector-y v) (vector-ref v 1))</font></div><div><font face="Courier New">(define (vector-z v) (vector-ref v 2))</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(: sphere3d (#:posn (Vectorof Real) #:r Nonnegative-Real [#:color Plot-Color] -> renderer3d))</font></div><div><font face="Courier New">(define (sphere3d #:posn #{ctr.posn : (Vectorof Real)} #:r #{r : Nonnegative-Real} #:color [#{color : Plot-Color} "black"])</font></div><div><font face="Courier New">  (let: ([ctr.x : Real (vector-x ctr.posn)]</font></div><div><font face="Courier New">         [ctr.y : Real (vector-y ctr.posn)]</font></div><div><font face="Courier New">         [ctr.z : Real (vector-z ctr.posn)])</font></div><div><font face="Courier New">    (isosurface3d (λ: ([x : Real] [y : Real] [z : Real])</font></div><div><font face="Courier New">                    (let: ([posn : (Vectorof Real) (vector x y z)])</font></div><div><font face="Courier New">                      (vmag^2 (v- posn ctr.posn))))</font></div><div><font face="Courier New">                  (ann (sqr r) Real)</font></div><div><font face="Courier New">                  (ann (- ctr.x r) (U Real False)) (ann (+ ctr.x r) (U Real False))</font></div><div><font face="Courier New">                  (ann (- ctr.y r) (U Real False)) (ann (+ ctr.y r) (U Real False))</font></div><div><font face="Courier New">                  (ann (- ctr.z r) (U Real False)) (ann (+ ctr.z r) (U Real False))</font></div><div><font face="Courier New">                  #:line-style 'transparent</font></div><div><font face="Courier New">                  #:color color)))</font></div></div><div><br></div><div>And it returns these errors:</div><div>. Type Checker: Expected (Vectorof Real), but got Plot-Color in: (define (sphere3d …) …)</div><div>. Type Checker: Expected Nonnegative-Real, but got True in: (define (sphere3d …) …)</div><div>. Type Checker: Expected Plot-Color, but got (Vectorof Real) in: (define (sphere3d …) …)</div><div>. Type Checker: Expected (Vectorof Real), but got False in: (define (sphere3d …) …)</div><div>. Type Checker: Expected Nonnegative-Real, but got False in: (define (sphere3d …) …)</div><div>. Type Checker: Expected Plot-Color, but got (Vectorof Real) in: (define (sphere3d …) …)</div><div><br></div><div>Why am I getting these?  Is it somehow mixing up the arguments?</div><div><br></div><div><br></div></body></html>