The problem of supporting the modular extensibility of both data and functions in one programming language at the same time is known as the expression problem. Functional languages traditionally make it easy to add new functions, but extending data (adding new data constructors) requires modifying existing code. We present a semantically and syntactically lightweight variant of open data types and open functions as a solution to the expression problem in the Haskell language. Constructors of open data types and equations of open functions may appear scattered throughout a program with several modules. The intended semantics is as follows: the program should behave as if the data types and functions were closed, defined in one place. The ord...
Abstract. A generic function is defined by induction on the structure of types. The structure of a d...
A generic function is a function that can be instantiated on many data types to obtain data type spe...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
The ‘Scrap your boilerplate ’ approach to generic programming allows the programmer to write generic...
We study the notion of extensibility in functional data types, as a new approach to the problem of d...
A type-indexed function is a function that is defined for each member of some family of types. Haske...
Open, type-level functions are a recent innovation in Haskell that move Haskell towards the expressi...
We report on an extension of Haskell with type(-level) functions and equality constraints. We illust...
We extend Haskell with regular expression patterns. Regular expression patterns provide means for ma...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
Many functions have to be written over and over again for different datatypes, either because dataty...
This paper describes a new approach to generic functional programming, which allows us to define fun...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Type-directed programming is an important idiom for software design. In type-directed programming th...
Abstract. A generic function is defined by induction on the structure of types. The structure of a d...
A generic function is a function that can be instantiated on many data types to obtain data type spe...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
The ‘Scrap your boilerplate ’ approach to generic programming allows the programmer to write generic...
We study the notion of extensibility in functional data types, as a new approach to the problem of d...
A type-indexed function is a function that is defined for each member of some family of types. Haske...
Open, type-level functions are a recent innovation in Haskell that move Haskell towards the expressi...
We report on an extension of Haskell with type(-level) functions and equality constraints. We illust...
We extend Haskell with regular expression patterns. Regular expression patterns provide means for ma...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
Many functions have to be written over and over again for different datatypes, either because dataty...
This paper describes a new approach to generic functional programming, which allows us to define fun...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
Type-directed programming is an important idiom for software design. In type-directed programming th...
Abstract. A generic function is defined by induction on the structure of types. The structure of a d...
A generic function is a function that can be instantiated on many data types to obtain data type spe...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...