Practical Variable-Arity Polymorphism

  • Authors:
  • T. Stephen Strickland;Sam Tobin-Hochstadt;Matthias Felleisen

  • Affiliations:
  • PLT @ Northeastern University,;PLT @ Northeastern University,;PLT @ Northeastern University,

  • Venue:
  • ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Just as some functions have uniform behavior over distinct types, other functions have uniform behavior over distinct arities. These variable-arity functions are widely used in scripting languages such as Scheme and Python. Statically typed languages also accommodate modest forms of variable-arity functions, but even ML and Haskell, languages with highly expressive type systems, cannot type check the wide variety of variable-arity functions found in untyped functional languages. Consequently, their standard libraries contain numerous copies of the same function definition with slightly different names. As part of the Typed Scheme project--an on-going effort to create an explicitly typed sister language for PLT Scheme--we have designed and implemented an expressive type system for variable-arity functions. Our practical validation in the context of our extensive code base confirms the usefulness of the enriched type system.