Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 5
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Liu, Yu David Skalka, Christian and Smith, Scott F. 2011. Type-specialized staged programming with process separation. Higher-Order and Symbolic Computation, Vol. 24, Issue. 4, p. 341.

    VYTINIOTIS, DIMITRIOS and WEIRICH, STEPHANIE 2010. Parametricity, type equality, and higher-order polymorphism. Journal of Functional Programming, Vol. 20, Issue. 02, p. 175.

    Vytiniotis, Dimitrios and Weirich, Stephanie 2007. Free Theorems and Runtime Type Representations. Electronic Notes in Theoretical Computer Science, Vol. 173, p. 357.

    Weirich, Stephanie and Huang, Liang 2005. A Design for Type-Directed Programming in Java. Electronic Notes in Theoretical Computer Science, Vol. 138, Issue. 2, p. 117.

    Tse, S. and Zdancewic, S. 2004. IEEE Symposium on Security and Privacy, 2004. Proceedings. 2004. p. 179.


Intensional polymorphism in type-erasure semantics

  • DOI:
  • Published online: 01 November 2002

Intensional polymorphism, the ability to dispatch to different routines based on types at run time, enables a variety of advanced implementation techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, polymorphic marshalling and attened data structures. To date, languages that support intensional polymorphism have required a type-passing (as opposed to type-erasure) interpretation where types are constructed and passed to polymorphic functions at run time. Unfortunately, type-passing suffers from a number of drawbacks: it requires duplication of run-time constructs at the term and type levels, it prevents abstraction, and it severely complicates polymorphic closure conversion. We present a type-theoretic framework that supports intensional polymorphism, but avoids many of the disadvantages of type passing. In our approach, run-time type information is represented by ordinary terms. This avoids the duplication problem, allows us to recover abstraction, and avoids complications with closure conversion. In addition, our type system provides another improvement in expressiveness; it allows unknown types to be refined in place, thereby avoiding certain beta-expansions required by other frameworks.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN:
  • EISSN:
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *