We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of our approach are that it (1) is purely functional, (2) supports reuse through shape polymorphism, (3) avoids unnecessary intermediate structures rather than relying on subsequent loop fusion, and (4) supports transparent parallelisation. We show how to embed two forms of shape polymorphism into Haskell’s type system using type classes and type families. In par-ticular, we discuss the generalisation of regular array transforma-tions to arrays of higher rank, and introduce a type-safe specifica-tion of array slices. We discuss the runtime performance of our approach for three standard array algorithms. We achieve absolute performance com-parabl...
Enabling programmers to "think parallel'' is critical if we are to be able to effectively exploit fu...
This paper describes a practical type inference algorithm for typing poly-morphic and possibly mutua...
Stencil convolution is a fundamental building block of many sci-entific and image processing algorit...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
O'Haskell is a programming language derived from Haskell by the addition of concurrent reactive obje...
Several generic programs for converting values from regular datatypes to some other format, togethe...
Nowadays, performance in processors is increased by adding more cores orwider vector units, or by co...
Abstract. Generic Haskell is an extension of Haskell that supports the construction of generic progr...
Nowadays, performance in processors is increased by adding more cores or wider vector units, or by c...
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type, ByteStrin...
Several generic programs for converting values from regular datatypes to some other format, together...
AbstractSeveral generic programs for converting values from regular datatypes to some other format, ...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
A generic compact printer and a corresponding parser are constructed. These programs transform valu...
This paper discusses some advantages of supporting polymorphic recursión in programming languages an...
Enabling programmers to "think parallel'' is critical if we are to be able to effectively exploit fu...
This paper describes a practical type inference algorithm for typing poly-morphic and possibly mutua...
Stencil convolution is a fundamental building block of many sci-entific and image processing algorit...
We present a novel approach to regular, multi-dimensional arrays in Haskell. The main highlights of ...
O'Haskell is a programming language derived from Haskell by the addition of concurrent reactive obje...
Several generic programs for converting values from regular datatypes to some other format, togethe...
Nowadays, performance in processors is increased by adding more cores orwider vector units, or by co...
Abstract. Generic Haskell is an extension of Haskell that supports the construction of generic progr...
Nowadays, performance in processors is increased by adding more cores or wider vector units, or by c...
Abstract The Haskell String type is notoriously inefficient. We introduce a new data type, ByteStrin...
Several generic programs for converting values from regular datatypes to some other format, together...
AbstractSeveral generic programs for converting values from regular datatypes to some other format, ...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
A generic compact printer and a corresponding parser are constructed. These programs transform valu...
This paper discusses some advantages of supporting polymorphic recursión in programming languages an...
Enabling programmers to "think parallel'' is critical if we are to be able to effectively exploit fu...
This paper describes a practical type inference algorithm for typing poly-morphic and possibly mutua...
Stencil convolution is a fundamental building block of many sci-entific and image processing algorit...