An empirical study of the influence of static type systems on the usability of undocumented software
Types and Programming Languages