publications: - title: "Mechanized Metatheory for the Masses: The PoplMark Challenge" author: - name: "Brian E. Aydemir" link: "https://researchr.org/alias/brian-e.-aydemir" - name: "Aaron Bohannon" link: "https://researchr.org/alias/aaron-bohannon" - name: "Matthew Fairbairn" link: "https://researchr.org/alias/matthew-fairbairn" - name: "J. Nathan Foster" link: "http://www.cs.princeton.edu/~jnfoster/" - name: "Benjamin C. Pierce" link: "http://www.cis.upenn.edu/~bcpierce/" - name: "Peter Sewell" link: "https://researchr.org/alias/peter-sewell" - name: "Dimitrios Vytiniotis" link: "http://" - name: "Geoffrey Washburn" link: "https://researchr.org/alias/geoffrey-washburn" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" - name: "Steve Zdancewic" link: "https://researchr.org/alias/steve-zdancewic" year: "2005" doi: "http://dx.doi.org/10.1007/11541868_4" abstract: "How close are we to a world where every paper on programming languages is accompanied by an electronic appendix with machine-checked proofs? We propose an initial set of benchmarks for measuring progress in this area. Based on the metatheory of System F<:, a typed lambda-calculus with second-order polymorphism, subtyping, and records, these benchmarks embody many aspects of programming languages that are challenging to formalize: variable binding at both the term and type levels, syntactic forms with variable numbers of components (including binders), and proofs demanding complex induction principles. We hope that these benchmarks will help clarify the current state of the art, provide a basis for comparing competing technologies, and motivate further research." links: doi: "http://dx.doi.org/10.1007/11541868_4" tags: - "programming languages" - "rule-based" - "variable binding" - "principles" - "type system" - "C++" - "metatheory" - "subtyping" - "programming" - "state machines" researchr: "https://researchr.org/publication/AydemirBFFPSVWWZ05" cites: 0 citedby: 0 pages: "50-65" booktitle: "tphol" kind: "inproceedings" key: "AydemirBFFPSVWWZ05" - title: "FPH: first-class polymorphism for Haskell" author: - name: "Dimitrios Vytiniotis" link: "http://" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" year: "2008" doi: "http://doi.acm.org/10.1145/1411204.1411246" abstract: "Languages supporting polymorphism typically have ad-hoc restrictions on where polymorphic types may occur. Supporting ``first-class'' polymorphism, by lifting those restrictions, is obviously desirable, but it is hard to achieve this without sacrificing type inference. We present a new type system for higher-rank and impredicative polymorphism that improves on earlier proposals: it is an extension of Damas-Milner; it relies only on System F types; it has a simple, declarative specification; it is robust to program transformations; and it enjoys a complete and decidable type inference algorithm. " links: doi: "http://doi.acm.org/10.1145/1411204.1411246" tags: - "programming languages" - "type inference" - "completeness" - "System F" - "MLF" - "transformation language" - "polymorphism" - "Haskell" - "type system" - "transformation system" - "higher-order transformations" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/VytiniotisWJ08" cites: 0 citedby: 0 pages: "295-306" booktitle: "ICFP" kind: "inproceedings" key: "VytiniotisWJ08" - title: "Simple unification-based type inference for GADTs" author: - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" - name: "Dimitrios Vytiniotis" link: "http://" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" - name: "Geoffrey Washburn" link: "https://researchr.org/alias/geoffrey-washburn" year: "2006" doi: "http://doi.acm.org/10.1145/1159803.1159811" links: doi: "http://doi.acm.org/10.1145/1159803.1159811" tags: - "type inference" - "rule-based" researchr: "https://researchr.org/publication/JonesVWW06" cites: 0 citedby: 0 pages: "50-61" booktitle: "ICFP" kind: "inproceedings" key: "JonesVWW06" - title: "Free Theorems and Runtime Type Representations" author: - name: "Dimitrios Vytiniotis" link: "http://" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" year: "2007" doi: "http://dx.doi.org/10.1016/j.entcs.2007.02.043" links: doi: "http://dx.doi.org/10.1016/j.entcs.2007.02.043" researchr: "https://researchr.org/publication/VytiniotisW07" cites: 0 citedby: 0 journal: "ENTCS" volume: "173" pages: "357-373" kind: "article" key: "VytiniotisW07" - title: "Practical type inference for arbitrary-rank types" author: - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" - name: "Dimitrios Vytiniotis" link: "http://" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" - name: "Mark Shields" link: "https://researchr.org/alias/mark-shields" year: "2007" doi: "http://dx.doi.org/10.1017/S0956796806006034" links: doi: "http://dx.doi.org/10.1017/S0956796806006034" tags: - "type inference" researchr: "https://researchr.org/publication/JonesVWS07" cites: 0 citedby: 0 journal: "JFP" volume: "17" number: "1" pages: "1-82" kind: "article" key: "JonesVWS07" - title: "An open and shut typecase" author: - name: "Dimitrios Vytiniotis" link: "http://" - name: "Geoffrey Washburn" link: "https://researchr.org/alias/geoffrey-washburn" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" year: "2005" doi: "http://doi.acm.org/10.1145/1040294.1040296" links: doi: "http://doi.acm.org/10.1145/1040294.1040296" tags: - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/VytiniotisWW05" cites: 0 citedby: 0 pages: "13-24" booktitle: "tldi" kind: "inproceedings" key: "VytiniotisWW05" - title: "Boxy types: inference for higher-rank types and impredicativity" author: - name: "Dimitrios Vytiniotis" link: "http://" - name: "Stephanie Weirich" link: "http://www.cis.upenn.edu/~sweirich/" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" year: "2006" doi: "http://doi.acm.org/10.1145/1159803.1159838" links: doi: "http://doi.acm.org/10.1145/1159803.1159838" tags: - "type inference" researchr: "https://researchr.org/publication/VytiniotisWJ06" cites: 0 citedby: 0 pages: "251-262" booktitle: "ICFP" kind: "inproceedings" key: "VytiniotisWJ06" - title: "OutsideIn(X) Modular type inference with local assumptions" author: - name: "Dimitrios Vytiniotis" link: "http://" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" - name: "Tom Schrijvers" link: "http://users.ugent.be/~tschrijv" - name: "Martin Sulzmann" link: "https://researchr.org/alias/martin-sulzmann" year: "2011" abstract: " Advanced type system features, such as GADTs, type classes and type families, have proven to be invaluable language extensions for ensuring data invariants and program correctness. Unfortunately, they pose a tough problem for type inference when they are used as local type assumptions. Local type assumptions often result in the lack of principal types and cast the generalisation of local let-bindings prohibitively difficult to implement and specify. User-declared axioms only make this situation worse. In this paper, we explain the problems and – perhaps controversially – argue for abandoning local let-binding generalisation. We give empirical results that local let generalisation is only sporadically used by Haskell programmers. Moving on, we present a novel constraint-based type inference approach for local type assumptions. Our system, called OutsideIn(X), is parameterised over the particular underlying constraint domain X, in the same way as HM(X). This stratification allows us to use a common metatheory and inference algorithm. OutsideIn(X) extends the constraints of X by introducing implication constraints on top. We describe the strategy for solving these implication constraints, which, in turn, relies on a constraint solver for X. We characterise the properties of the constraint solver for X so that the resulting algorithm only accepts programs with principal types, even when the type system specification accepts programs that do not enjoy principal types. Going beyond the general framework, we give a particular constraint solver for X = type classes + GADTs + type families, a non-trivial challenge in its own right. This constraint solver has been implemented and distributed as part of GHC 7." tags: - "empirical" - "programming languages" - "type inference" - "rule-based" - "data-flow language" - "constraints" - "Haskell" - "type system" - "data-flow programming" - "data-flow" - "metatheory" - "systematic-approach" - "local type inference" - "domain-specific language" researchr: "https://researchr.org/publication/VytiniotisJSS11" cites: 0 citedby: 0 journal: "J. Funct. Program." volume: "21" number: "4-5" pages: "333-412" kind: "article" key: "VytiniotisJSS11"