
check calls to resolve-once to see if they return #f (i.e. if a type is not yet defined), and have overlap only extend its seen list when it is resolving/unfolding a potentially infinite type
5 lines
115 B
Racket
5 lines
115 B
Racket
#lang typed/racket
|
|
(struct (A) S ([f : A]))
|
|
|
|
(define-type T (∩ (S Nonnegative-Integer) (S Nonpositive-Integer)))
|