Typed Racket can't be sure that untyped code won't change whats inside
a mutable vector or box
---
#lang racket
(define v (vector 'A))
(define (set-v!) (vector-set! v 0 0))
(provide v set-v!)
#lang typed/racket
(require/typed "path-to-untyped.rkt"
(v : (Vectorof Any))
(set-v! : (-> Void)))
;; suppose this worked
(: vos (-> Any Boolean : (Vectorof Symbol)))
(define (vos x) ....)
(cond
[(vos? v)
;; v : (Vectorof Symbol)
(set-v!)
;; v now contains an integer!
....]))
---
I don't know a work-around.
I was hoping it could work for (Immutable-Vectorof Symbol), but I
don't know what to use in place of `andmap`.