Contract inference for relationally parametric polymorphic contracts
Guha et al have developed a way to specify relationally parametric polymorphism in contracts and check conformance at runtime. These ideas were realized in the Racket programming language. Currently, the utility of parametric contracts is limited due to the fact that parametric contracts must be instantiated explicitly in many circumstances; implicit instantiation only works for primitive types.
The task for this thesis is to extend the contract inference mechanism to work in more cases; in particular, inference should also work for structures.
This thesis is well-suited for a student with a good background in dynamic languages and/or functional programming. Programming skills in Racket are a plus.