Blame for all
View/ Open
Date
2009Author
Ahmed, Amal
Findler, Robert Bruce
Matthews, Jacob
Wadler, Philip
Metadata
Abstract
We present a language that integrates statically and dynamically typed
components, similar to the gradual types of Siek and Taha (2006), and extend it to
incorporate parametric polymorphism. Our system permits a dynamically typed
value to be cast to a polymorphic type, with the type enforced by dynamic sealing
along the lines proposed by Pierce and Sumii (2000), Matthews and Ahmed
(2008), and Neis, Dreyer, and Rossberg (2009), in a way that ensures all terms
satisfy relational parametricity. Our system includes a notion of blame, which
allows us to show that when more-typed and less-typed portions of a program
interact, that any type failures are due to the less-typed portion.