TY - GEN
T1 - Witnessing purity, constancy and mutability
AU - Lippmeier, Ben
PY - 2009
Y1 - 2009
N2 - Restricting destructive update to values of a distinguished reference type prevents functions from being polymorphic in the mutability of their arguments. This restriction makes it easier to reason about program behaviour during transformation, but the lack of polymorphism reduces the expressiveness of the language. We present a System-F style core language that uses dependently kinded proof witnesses to encode information about the mutability of values and the purity of computations. We support mixed strict and lazy evaluation, and use our type system to ensure that only computations without visible side effects are suspended.
AB - Restricting destructive update to values of a distinguished reference type prevents functions from being polymorphic in the mutability of their arguments. This restriction makes it easier to reason about program behaviour during transformation, but the lack of polymorphism reduces the expressiveness of the language. We present a System-F style core language that uses dependently kinded proof witnesses to encode information about the mutability of values and the purity of computations. We support mixed strict and lazy evaluation, and use our type system to ensure that only computations without visible side effects are suspended.
UR - http://www.scopus.com/inward/record.url?scp=72449198431&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-10672-9_9
DO - 10.1007/978-3-642-10672-9_9
M3 - Conference contribution
SN - 3642106714
SN - 9783642106712
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 95
EP - 110
BT - Programming Languages and Systems - 7th Asian Symposium, APLAS 2009, Proceedings
T2 - 7th Asian Symposium on Programming Languages and Systems, APLAS 2009
Y2 - 14 December 2009 through 16 December 2009
ER -