Something I've always wondered is if there's any reason to have so many different typing engines. TypeScript, for example, seems feature complete enough to provide a mechanism to type any language. (I'm almost sure this can be proven.)
The real challenge instead would be to design the syntax extensions for typing so they feel natural.
`sig { returns(Blah) }` feels ugly.