The systems with performance issues are the sound ones!<p>Hack does not have a type soundness guarantee. The compiler statically checks your type annotations, but then generates untyped PHP code. If Hack-generated PHP interacts with PHP from 5 years ago, &quot;type errors&quot; are possible.<p>(I have to say &quot;type errors&quot; in quotes because a mismatch between originally-typed and originally-untyped PHP could result in any kind of error message, or no error at all!)<p>Systems like Typed Racket do type checking at runtime when interacting with untyped Racket code. These runtime checks are the performance problem, but they do accurately diagnose type errors.