• Corpus ID: 60573638

Haskell 98 language and libraries : the revised report

  title={Haskell 98 language and libraries : the revised report},
  author={P. Jones and Lindsey Simon},
Part I. The Haskell 98 Language: 1 Introduction 2 Lexical structure 3 Expressions 4 Declarations and bindings 5 Modules 6 Predefined types and classes 7 Basic input/output 8 Standard prelude 9 Syntax reference 10 Specification of derived instances 11 Compiler pragmas Part II The Haskell 98 Libraries: 12 Rational numbers 13 Complex numbers 14 Numeric functions 15 Indexing operations 16 Arrays 17 List utilities 18 Maybe utilities 19 Character utilities 20 Monad utilities 21 Input/output 22… 
Typing Haskell with an Attribute Grammar
This paper describes the implementation of a series of compilers for a simplified variant of Haskell by using an attribute grammar system, which allows aspects of a compiler implementation to be described separately and added in a sequence of steps, thereby giving aseries of increasingly complex compilers.
Haskell type constraints unleashed: Companion report
This paper introduces constraint synonyms and constraint families, and illustrates their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples.
Generic Selections of Subexpressions Martijn van Steenbergen
This paper describes how to automatically extend datatypes with position information using datatype-generic programming techniques and shows examples of how to use this position information: parsers that automatically construct trees annotated with positions, catamorphisms that deal with failure by reporting error locations, and zippers that efficiently navigate annotated trees.
An Embedded Haskell Subset Implementation
  • I. Lewis
  • Computer Science
    Software Engineering Research and Practice
  • 2006
We provide an implementation of a Haskell subset embedded within the Java programming language. The subset provides type inference, polymorphism, first-class functions, currying, and mixing of
Executable Grammars in Newspeak
  • Gilad Bracha
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2007
MIL, a Monadic Intermediate Language for Implementing Functional Languages
This paper describes MIL, a "monadic intermediate language" that is designed for use in optimizing compilers for strict, strongly typed functional languages. By using a notation that exposes the
Haskell Boards the Ferry - Database-Supported Program Execution for Haskell
A Haskell library for database-supported program execution that avoids unnecessary data transfer and context switching between the database coprocessor and the programming language runtime by ensuring that the number of generated relational queries is only determined by the program fragment’s type and not by the database size.
Classes for the Masses (Extended Abstract)
This work has extended the open source C# compiler and language service, Roslyn, with pervasive support for type classes and has prototyped a more minimalist design for F#.
A generic deriving mechanism for Haskell
This work proposes a new approach to Haskell's deriving mechanism, which allows users to specify how to derive arbitrary class instances using standard datatype-generic programming techniques, and implemented it together with many new derivable classes in the Utrecht Haskell Compiler.
Comparing Datatype Generic Libraries in Haskell
This paper develops a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming, and implements the benchmark for ten existing Haskell generic programming libraries and presents the evaluation of the libraries.


Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs
A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules; these systems have semantics loosely coupled to states—only one state transition occurs per major computation.
How to make ad-hoc polymorphism less ad hoc
Type classes extend the Hindley/Milner polymorphic type system, and provide a new approach to issues that arise in object-oriented programming, bounded type quantification, and abstract data types.
The Principal Type-Scheme of an Object in Combinatory Logic
One of the aims of combinatory logic is to study the most basic properties of functions and other concepts, with as few restrictions as possible; hence in the simplest form of combinatory logic there
Principal type-schemes for functional programs
Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of
Literate Programming
This anthology of essays from the inventor of literate programming also contains excerpts from the programs for TEX and METAFONT and CWEB, a system for Literate programming in C and related languages.
Distributed random number generation
A new approach is proposed in which a random number sequence can be split at a random point to produce a pair of random number sequences that can be used independently at different points in the computation.
Principal values and branch cuts in complex APL
The results apply to APL, other languages, applications packages, and VLSI hardware for complex calculations, and it is recommended that comparison tolerance be used in the selection of principal values.
A gentle introduction to Haskell
Permission is granted to any person obtaining a copy of “A Gentle Introduction to Haskell” to deal in the Text without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Text.
Don't trust parallel Monte Carlo!
  • P. Hellekalek
  • Computer Science
    Proceedings. Twelfth Workshop on Parallel and Distributed Simulation PADS '98 (Cat. No.98TB100233)
  • 1998
This work presents a review of the main concepts to produce random numbers on parallel processors and illustrates some phenomena that occur with parallelization.