Extensional Universal Types for Call-by-Value

  • Authors:
  • Kazuyuki Asada

  • Affiliations:
  • Research Institute for Mathematical Sciences, Kyoto University, Japan

  • Venue:
  • APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose ${\lambda_{\text{c}}2_{\eta}}$ -calculus , which is a second-order polymorphic call-by-value calculus with extensional universal types. Unlike product types or function types in call-by-value, extensional universal types are genuinely right adjoint to the weakening, i.e., β -equality and *** -equality hold for not only values but all terms. We give monadic style categorical semantics, so that the results can be applied also to languages like Haskell. To demonstrate validity of the calculus, we construct concrete models for the calculus in a generic manner, exploiting "relevant" parametricity. On such models, we can obtain a reasonable class of monads consistent with extensional universal types. This class admits polynomial-like constructions, and includes non-termination, exception, global state, input/output, and list-non-determinism.