Conference Paper

Linearity and recursion in a typed Lambda-Calculus

DOI: 10.1145/2003476.2003500 Conference: Proceedings of the 13th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, July 20-22, 2011, Odense, Denmark
Source: DBLP


We show that the full PCF language can be encoded in L_rec, a syntactically linear λ-calculus extended with numbers, pairs, and an unbounded recursor that preserves the syntactic linearity of the calculus. We give call-by-name and call-by-value evaluation strategies and discuss implementation techniques for L_rec, exploiting its linearity.

9 Reads
  • [Show abstract] [Hide abstract]
    ABSTRACT: In this article we discuss three different notions of linearity: syntactical, operational and denotational. We briefly define each notion of linearity, pointing out some of the main results in the area, and describe applications of linear languages and type systems.
    Journal of Logic and Computation 06/2014; 24(3-3):513-529. DOI:10.1093/logcom/exs020 · 0.51 Impact Factor
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Linear and substructural types are powerful tools, but adding them to standard functional programming languages often means introducing extra annotations and typing machinery. We propose a lightweight substructural type system design that recasts the structural rules of weakening and contraction as type classes; we demonstrate this design in a prototype language, Clamp. Clamp supports polymorphic substructural types as well as an expressive system of mutable references. At the same time, it adds little additional overhead to a standard Damas-Hindley-Milner type system enriched with type classes. We have established type safety for the core model and implemented a type checker with type inference in Haskell.
    02/2015; 176. DOI:10.4204/EPTCS.176.4