A type system for Continuation Calculus
Herman Geuvers (Radboud Universiteit Nijmegen, Technical University, Eindhoven), Wouter Geraedts (Radboud Universiteit Nijmegen), Bram Geron, (University of Birmingham), Judith van Stegeren (Radboud Universiteit, Nijmegen)

TL;DR
This paper extends Continuation Calculus with a type system, enabling canonical data type definitions and iteration schemes, bridging call-by-value and call-by-name evaluation through double negation translation.
Contribution
It introduces a type system for CC with Scott-encoded data types and two iteration schemes, connecting call-by-value and call-by-name semantics.
Findings
Defined data types via Scott encoding in CC
Developed call-by-value and call-by-name iteration schemes
Established a double negation translation between evaluation strategies
Abstract
Continuation Calculus (CC), introduced by Geron and Geuvers, is a simple foundational model for functional computation. It is closely related to lambda calculus and term rewriting, but it has no variable binding and no pattern matching. It is Turing complete and evaluation is deterministic. Notions like "call-by-value" and "call-by-name" computation are available by choosing appropriate function definitions: e.g. there is a call-by-value and a call-by-name addition function. In the present paper we extend CC with types, to be able to define data types in a canonical way, and functions over these data types, defined by iteration. Data type definitions follow the so-called "Scott encoding" of data, as opposed to the more familiar "Church encoding". The iteration scheme comes in two flavors: a call-by-value and a call-by-name iteration scheme. The call-by-value variant is a double negation…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
