Haskell is the world's leading lazy functional programming language, widely used for teaching, research, and applications. The language continues to develop rapidly, but in 1998 the community decided to capture a stable snapshot of the language: Haskell 98. All Haskell compilers support Haskell 98, so practitioners and educators alike have a stable base for their work. This book constitutes the agreed definition of the Haskell 98, both the language itself and its supporting libraries. It has been considerably revised and refined since the original definition, and appears in print for the first time. It should be a standard reference work for anyone involved in research, teaching, or application of Haskell.
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 Directory functions; 23 System functions; 24 Dates and times; 25 Locales; 26 CPU time; 27 Random numbers; Bibliography.