#lang racket/base ;; Generic struct predicates are OK (module u racket/base (require racket/generic) (define-generics foo) (struct foo-struct () #:methods gen:foo []) (define f1 (foo-struct)) (provide f1 foo?)) (module t typed/racket/base (require/typed (submod ".." u) (#:opaque Foo foo?) (f1 Foo)) (foo? 3) (foo? f1)) (require 't)