Higher-order abstract syntax is a simple technique for implementing languages with functional programming. Object variables and binders are implemented by variables and binders in the host language. By using this technique, one can avoid implementing common and tricky routines dealing with variables, such as capture-avoiding substitution. However, despite the advantages this technique provides, it is not commonly used because it is difficult to write sound elimination forms (such as folds or catamorphisms) for higher-order abstract syntax. To fold over such a datatype, one must either simultaneously define an inverse operation (which may not exist) or show that all functions embedded in the datatype are parametric. In this paper, we show ho...
AbstractA polymorphic function is parametric if its behavior does not depend on the type at which it...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
This paper describes the modular polymorphic functional programming language OBJ--P. OBJ--P is an e...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Abstract Higher-order abstract syntax is a simple technique for implementing languages with function...
This paper explores how certain ideas in object oriented languages have their correspondents in func...
We show that, in a parametric model of polymorphism, the type ∀ α. ((α → α) → α) → (α → α → α) → α i...
Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Higher-order abstract syntax is a central representation technique in logical frameworks which maps ...
Parametric polymorphism in functional programming languages with explicit polymorphism is the proper...
Traditional functional languages do not have an explicit distinction between binding times. It aris...
AbstractA polymorphic function is parametric if its behavior does not depend on the type at which it...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
This paper describes the modular polymorphic functional programming language OBJ--P. OBJ--P is an e...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Higher-order abstract syntax is a simple technique for implementing languages with functional progra...
Abstract Higher-order abstract syntax is a simple technique for implementing languages with function...
This paper explores how certain ideas in object oriented languages have their correspondents in func...
We show that, in a parametric model of polymorphism, the type ∀ α. ((α → α) → α) → (α → α → α) → α i...
Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Higher-order abstract syntax is a central representation technique in logical frameworks which maps ...
Parametric polymorphism in functional programming languages with explicit polymorphism is the proper...
Traditional functional languages do not have an explicit distinction between binding times. It aris...
AbstractA polymorphic function is parametric if its behavior does not depend on the type at which it...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
This paper describes the modular polymorphic functional programming language OBJ--P. OBJ--P is an e...