MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Theorems for free (1989) [227 citations — 5 self]

Download:
Download as a PDF | Download as a PS
by Philip Wadler
http://cm.bell-labs.com/cm/cs/who/wadler/topics/../papers/free/free.ps.gz
Add To MetaCart

Abstract:

From the type of a polymorphic function we can derive a theorem that it satisfies. Every function of the same type satisfies the same theorem. This provides a free source of useful theorems, courtesy of Reynolds' abstraction theorem for the polymorphic lambda calculus.

Citations

1483 The Definition of Standard ML – Milner, Tofte, et al. - 1990
1143 Imperative functional programming – Jones, Wadler - 1993
826 A theory of type polymorphism in programming – Milner - 1978
326 Towards a theory of type structure – Reynolds - 1974
278 How to Make Ad-hoc Polymorphism Less Ad Hoc – Wadler, Blott - 1989
275 Types, abstraction, and parametric polymorphism – Reynolds - 1983
269 Proofs and Types – Girard, Lafont, et al. - 1989
224 Principal type schemes for functional programs – Damas, Milner - 1982
132 Miranda: A Non-strict Functional Language with Polymorphic Types – Turner
124 Report on the functional programming language Haskell: A non-strict, purely functional language: Version 1.2 – Hudak, Jones, et al. - 1992
122 The system F of variable types, fifteen years later – Girard - 1986
88 The principal type scheme for an object in combinatory logic – Hindley - 1969
65 Three Approaches to Type Structure – Reynolds - 1985
46 dI-domains as a model of polymorphism – Coquand, Gunter, et al. - 1987
46 Polymorphism is set-theoretic, constructively – Pitts
44 Functorial polymorphism – Bainbridge, Freyd, et al. - 1990
41 Polymorphism is not set-theoretic – Reynolds - 1984
37 Inheritance and explicit coercion – Breazu-Tannen, Coquand, et al. - 1991
35 The Standard ML core language – MILNER - 1985
33 The Expressiveness of Simple and Second-Order Type Structures – St, Leivant, et al. - 1983
20 Representation independence and data abstraction – Mitchell - 1991
19 Interprétation Functionelle et Élimination des Coupures dans l’Arithmétique d’Order Supérieure – Girard - 1972
18 Second-order logical relations – Mitchell, Meyer - 1985
3 The semantics of second-order polymorphic lambda calculus – Bruce, Meyer - 1984
3 Semantic parametricity in polymorphic lambda calculus – Freyd, Girard, et al. - 1988
3 Relating Models of Polymorphism – Meseguer - 1989
3 Categories for the working hardware designer – Sheeran - 1990
1 Derivation of a pattern-matching compiler – Barrett, Wadler - 1986
1 Naturalness of polymorphism. Submitted to Category Theory – deBruin - 1989