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