Results 1 -
2 of
2
FreshML: Programming with Binders Made Simple
, 2003
"... FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving binding operations. User-declared FreshML datatypes involving binders are concrete, in the sense that values of these types can be deconstructed by matching against patterns naming boun ..."
Abstract
-
Cited by 68 (22 self)
- Add to MetaCart
FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving binding operations. User-declared FreshML datatypes involving binders are concrete, in the sense that values of these types can be deconstructed by matching against patterns naming bound variables explicitly. Such matching may have a computational effect in which bound names get swapped with freshly generated names. Previous work on FreshML used a complicated static type system inferring information about the `freshness' of names for expressions in order to tame such effects. The main contribution of this paper is to show (perhaps surprisingly) that a much simpler type system without freshness inference, coupled with name swapping and a conventional treatment of fresh name generation, suffices for FreshML's crucial correctness property---namely that values of datatypes involving binders are operationally equivalent if and only if they represent #-equivalent pieces of object-level syntax. This correctness result is established via a novel denotational semantics. FreshML without static freshness inference is no more impure than ML and our experiences programming in it show that it supports a programming style pleasingly close to informal practice when it comes to dealing with syntax modulo #-equivalence.
The Semi-Full Closure of Pure Type Systems
- Proceedings of MFCS’98, volume 1450 of Lecture Notes in Computer Science
, 1998
"... We show that every functional Pure Type System may be extended to a semi-full Pure Type System. Moreover, the extension is conservative and preserves weak normalization. Based on these results, we give a new, conceptually simple type-checking algorithm for functional Pure Type Systems. 1 ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
We show that every functional Pure Type System may be extended to a semi-full Pure Type System. Moreover, the extension is conservative and preserves weak normalization. Based on these results, we give a new, conceptually simple type-checking algorithm for functional Pure Type Systems. 1

