Results 1 
4 of
4
A Generalization of Exceptions and Control in MLlike Languages
 IN PROC. FPCA
, 1995
"... We add functional continuations and prompts to a language with an MLstyle type system. The operators significantly extend and simplify the control operators in SML/NJ, and can be themselves used to implement (simple) exceptions. We prove that welltyped terms never produce runtime type errors and ..."
Abstract

Cited by 61 (0 self)
 Add to MetaCart
(Show Context)
We add functional continuations and prompts to a language with an MLstyle type system. The operators significantly extend and simplify the control operators in SML/NJ, and can be themselves used to implement (simple) exceptions. We prove that welltyped terms never produce runtime type errors and give a module for implementing them in the latest version of SML/NJ.
Refinement types and computational duality
 In: ACM SIGPLANSIGACT Workshop on Programming Languages Meets Program Verification
, 2009
"... One lesson learned painfully over the past twenty years is the perilous interaction of Currystyle typing with evaluation order and sideeffects. This led eventually to the value restriction on polymorphism in ML, as well as, more recently, to similar artifacts in type systems for ML with intersecti ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
One lesson learned painfully over the past twenty years is the perilous interaction of Currystyle typing with evaluation order and sideeffects. This led eventually to the value restriction on polymorphism in ML, as well as, more recently, to similar artifacts in type systems for ML with intersection and union refinement types. For example, some of the traditional subtyping laws for unions and intersections are unsound in the presence of effects, while unionelimination requires an evaluation context restriction in addition to the value restriction on intersectionintroduction. Our aim is to show that rather than being ad hoc artifacts, phenomena such as the value and evaluation context restrictions arise naturally in type systems for effectful languages, out of principles of duality. Beginning with a review of recent work on the CurryHoward interpretation of focusing proofs as patternmatching programs,
Return Types for Functional Continuations
, 1998
"... We study the typing of control operators in a language with an MLstyle type system. We ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We study the typing of control operators in a language with an MLstyle type system. We
Thesis Proposal: The logical basis of evaluation order
, 2007
"... Most type systems are agnostic regarding the evaluation strategy for the underlying languages, with the value restriction for ML which is absent in Haskell as a notable exception. As type systems become more precise, however, detailed properties of the underlying operational semantics may become vis ..."
Abstract
 Add to MetaCart
Most type systems are agnostic regarding the evaluation strategy for the underlying languages, with the value restriction for ML which is absent in Haskell as a notable exception. As type systems become more precise, however, detailed properties of the underlying operational semantics may become visible because properties captured by the types may be sound under one strategy but not the other. To give an example, intersection types distinguish between callbyname and callbyvalue functions because the subtyping rule (A → B) ∩ (A → C) ≤ A → (B ∩ C) is valid for the former but not the latter in the presence of effects. I propose to develop a unified, prooftheoretic approach to analyzing the interaction of types with evaluation order, based on the notion of polarity. Polarity was discovered and developed through linear logic, but I seek a fresh origin in Dummett’s program of justifying the logical laws through alternative “meaningtheories, ” essentially hypotheses as to whether the verification or use of a proposition has a canonical form. In my preliminary work, I showed how a careful judgmental analysis of Dummett’s ideas may be used to define a system of proofs and refutations, with a CurryHoward interpretation as a single programming language in which the duality between callbyvalue and callbyname is realized as one of types. After extending its type system with (both positive and negative) union and intersection operators and a derived subtyping relationship, I found that many operationallysensitive typing phenomena (e.g., alternative CBV/CBN subtyping distributivity principles, value and “covalue” restrictions) could be logically reconstructed. Here I give the technical details of this work, and present a plan for addressing open questions and extensions.