MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

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

by Philip Wadler
FUNCTIONAL PROGRAMMING LANGUAGES AND COMPUTER ARCHITECTURE
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

1415 The Definition of Standard ML – Milner, Tofte, et al. - 1990
1122 Introduction to Functional Programming – Bird, Wadler - 1988
806 A Theory of Type Polymorphism in Programming – Milner - 1978
304 Towards a theory of type structure – Reynolds - 1974
280 How to make ad-hoc polymorphism less ad-hoc – Wadler, Blott - 1989
278 Types, abstraction and parametric polymorphism – Reynolds - 1983
264 Proofs and Types – Girard, Taylor, et al. - 1989
217 Principal type schemes for functional programs – Milner, Damas - 1982
131 Miranda: A non-strict functional language with polymorphic types – TURNER - 1985
122 The system F of variable types, fifteen years later – Girard - 1986
114 Report on the Functional Programming Language Haskell: a non{strict, purely functional language. Sigplan Notices – Hudak, Peyton-Jones, et al. - 1992
88 The principal type scheme for an object in combinatory logic – Hindley - 1969
64 Three approaches to type structure – Reynolds - 1985
46 Polymorphism is set-theoretic, constructively – Pitts - 1987
45 Polymorphism is not Set-Theoretic – Reynolds
42 Functorial polymorphism – Bainbridge, Freyd, et al. - 1990
42 DI-domains as a model of polymorphism – Coquand, Gunter, et al. - 1987
31 Inheritance and explicit coercion – Breazu-Tannen, Coquand, et al. - 1991
30 The Standard ML core language – Milner - 1985
29 The Expressiveness of Simple and Second-Order Type Structures – Fortune, Leivant, et al. - 1983
22 Representation independence and data abstraction – Mitchell - 1986
18 Interpr'etation functionelle et 'elimination des coupures dans l'arithm'etique d'ordre sup'erieure – Girard - 1972
15 1985], ‘(Second-order logical relations – Mitchell, Meyer
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