Sorbet
Why and How We Built a Typechecker for Ruby