Fresh build from Racket git MASTER, the following causes DRRacket's Check Syntax to loop without termination.
#lang typed/racket/base (provide f) (struct: (T) S1 ([x : (Listof String)])) (struct: (T) S2 ([x : S0] [g : (T -> Boolean)])) (define-type (S0 T) (U (S1 T) (S2 T))) (: f (String -> (S0 String))) (define (f x) (S1 '()))
____________________ Racket Users list: http://lists.racket-lang.org/users