[racket] 3D Plot example doesn't work in Typed Racket

From: Greg Hendershott (greghendershott at gmail.com)
Date: Fri May 30 10:13:46 EDT 2014

This example from the plot docs works great:

    #lang racket
    (require plot)
    (plot-new-window? #t)
    (plot3d (discrete-histogram3d '(#(a a 1) #(a b 2) #(b b 3))
                                    #:label "Missing (b,a)"
                                    #:color 4 #:line-color 4))

But not with Typed Racket:

    #lang typed/racket   ;<- typed
    (require plot/typed) ;<- typed
    (plot-new-window? #t)
    (plot3d (discrete-histogram3d '(#(a a 1) #(a b 2) #(b b 3))
                                    #:label "Missing (b,a)"
                                    #:color 4 #:line-color 4))
    ; /tmp/tr.rkt:7:8: Type Checker: Expected (Sequenceof (U (Vector
Any Any (U Real False ivl)) (List Any Any (U Real False ivl)))), but
got (List (Vector Symbol Symbol Integer) (Vector Symbol Symbol
Integer) (Vector Symbol Symbol Integer))
    ;   in: (discrete-histogram3d (quote (#(a a 1) #(a b 2) #(b b 3)))
#:label "Missing (b,a)" #:color 4 #:line-color 4)

It fails to typecheck on 6.0.1.10, but also back on 5.3.5.

I don't understand the error; a list is a sequence, no?

Posted on the users mailing list.