We show that it is possible to reconstruct a significant portion of the type
information which is implicit in a program, automatically annotate function
interfaces, and detect definite type clashes without fundamental
changes to the philosophy of the language or imposing a type system
which unnecessarily rejects perfectly reasonable programs. To
do so, we introduce the notion of success typings of functions. Unlike
most static type systems, success typings incorporate subtyping
and never disallow a use of a function that will not result in a type
clash during runtime. Unlike most soft typing systems that have
previously been proposed, success typings allow for compositional,
bottom-up type inference which appears to scale well in practice.
A recent
paper using a subset of Erlang for the examples. This continues the trend of methods for uncovering type errors in dynamically-typed Erlang. One such tool,
Dialyzer, is now part of the Erlang distribution.
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 20 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago