Shamelessly stolen from Nate Foster.
@INPROCEEDINGS{pilkiewicz-pottier-monotonicity-11, author = {Alexandre Pilkiewicz and François Pottier}, title = {The Essence of Monotonic State}, booktitle = {Proceedings of the Sixth {ACM} {SIGPLAN} Workshop on Types in Language Design and Implementation (TLDI'11)}, month = JAN, year = {2011}, address = {Austin, Texas}, pdf = {http://pauillac.inria.fr/~pilkiewi/papers/tldi11.pdf} abstract = {We extend a static type-and-capability system with new mechanisms for expressing the promise that a certain abstract value evolves monotonically with time; for enforcing this promise; and for taking advantage of this promise to establish non-trivial properties of programs. These mechanisms are independent of the treatment of mutable state, but combine with it to offer a flexible account of ``monotonic state''.\par We apply these mechanisms to solve two reasoning challenges that involve mutable state. First, we show how an implementation of thunks in terms of references can be assigned types that reflect time complexity properties, in the style of Danielsson (2008). Second, we show how an implementation of hash-consing can be assigned a specification that conceals the existence of an internal state yet guarantees that two pieces of input data receive the same hash code if and only if they are equal.} }
@INPROCEEDINGS{quotient-lenses, AUTHOR = {J. Nathan Foster and Alexandre Pilkiewicz and Benjamin C. Pierce}, TITLE = {Quotient Lenses}, BOOKTITLE = {ACM {SIGPLAN} {I}nternational {C}onference on {F}unctional {P}rogramming ({ICFP}), Victoria, BC}, MONTH = SEP, YEAR = 2008, PAGES = {383--395}, CONF = {http://pauillac.inria.fr/~pilkiewi/papers/quotient-lenses.pdf}, TR = {http://repository.upenn.edu/cgi/viewcontent.cgi?article=1946&context=cis_reports}, }
@INPROCEEDINGS{boomerang, AUTHOR = {Aaron Bohannon and J. Nathan Foster and Benjamin C. Pierce and Alexandre Pilkiewicz and Alan Schmitt}, TITLE = {Boomerang: Resourceful Lenses for String Data}, BOOKTITLE = {ACM {SIGPLAN--SIGACT} {S}ymposium on {P}rinciples of {P}rogramming {L}anguages ({POPL}), San Francisco, CA}, MONTH = JAN, YEAR = 2008, PAGES = {407--419}, CONF = {http://pauillac.inria.fr/~pilkiewi/papers/boomerang.pdf }, TR = {http://pauillac.inria.fr/~pilkiewi/papers/boomerang-tr.pdf }, }