Haskell Libraries

The GHC Team


Table of Contents
1. Introduction
1.1. Usage
1.2. Naming conventions
1.2.1. Constructor names
1.2.2. Accessor names
1.2.3. Modificator names
1.2.4. Predicate names
1.2.5. Names for conversions
1.2.6. Miscellaneous naming conventions
1.3. Miscellaneous conventions
1.4. Known inconsistencies
2. The Prelude and the standard (std) package
2.1. Bugs, differences and caveats in GHC's standard library implementation
2.1.1. General
2.1.2. System
3. The concurrent package: concurrency support
3.1. Concurrent Haskell
3.2. Concurrency Basics
3.3. Scheduling
3.3.1. Thread Waiting
3.3.2. Blocking
3.4. Concurrency abstractions
3.4.1. Chan: Channels
3.4.2. CVar: Channel variables
3.4.3. MVar: Synchronising variables
3.4.4. QSem: General semaphores
3.4.5. QSemN: Quantity semaphores
3.4.6. SampleVar: Sample variables
3.4.7. Merging Streams
3.5. The Concurrent library interface
3.6. GHC-specific concurrency issues
3.6.1. Terminating the program
3.6.2. Pre-emption
4. The data package: datatypes
4.1. Edison
4.2. The FiniteMap type
4.3. Set
5. The lang package: language support
5.1. Addr
5.1.1. Address Type and Arithmetic
5.1.2. The Standard C-side Interface
5.2. Bits
5.3. ByteArray
5.4. CCall
5.5. CError
5.6. CForeign
5.7. CTypes
5.7.1. Integral types
5.7.2. Floating types
5.8. CTypesISO
5.8.1. Integral types
5.8.2. Numeric types
5.8.3. Misc types
5.9. CString
5.10. DiffArray
5.11. Dynamic
5.11.1. Representing types
5.11.2. The Typeable class
5.11.3. Utility functions
5.12. Exception
5.12.1. Kinds of exception
5.12.2. Throwing exceptions
5.12.3. The catch functions
5.12.4. The try functions
5.12.5. Dynamic Exceptions
5.12.6. Other Utilities
5.12.7. Asynchronous exceptions
5.13. Foreign
5.14. ForeignObj
5.14.1. The Standard Interface
5.14.2. The Standard C-side Interface
5.14.3. Deprecated Functions
5.15. ForeignPtr
5.15.1. The Haskell-side Interface
5.15.2. The C-side Interface
5.16. GlaExts
5.17. IArray
5.17.1. IArray and HasBounds type classes
5.17.2. UArray: immutable unboxed arrays
5.17.3. Useful combinators
5.18. Int
5.18.1. Notes
5.18.2. Deprecated Functions
5.19. IOExts
5.19.1. IO monad extensions
5.19.2. Mutable Variables
5.19.3. Mutable Arrays
5.19.4. Extended file modes
5.19.5. Bulk transfers
5.19.6. Terminal control
5.19.7. Redirecting handles
5.19.8. Trace
5.19.9. Extra IOError Predicates
5.19.10. Miscellany
5.20. LazyST
5.21. MArray
5.21.1. Freezing and thawing arrays
5.21.2. Useful combinators
5.22. MarshalAlloc
5.23. MarshalArray
5.24. MarshalError
5.25. MarshalUtils
5.26. MutableArray
5.26.1. Mutable arrays
5.26.2. Mutable byte arrays
5.27. NumExts
5.28. PackedString
5.29. Ptr
5.29.1. Data Pointers
5.29.2. Function Pointers
5.29.3. The Standard C-side Interface
5.30. ShowFunctions
5.31. ST
5.32. Stable
5.33. StableName
5.34. StablePtr
5.34.1. The Standard Interface
5.34.2. The Standard C-side Interface
5.34.3. Deprecated Functions
5.35. Storable
5.36. StorableArray
5.37. SystemExts
5.38. Weak
5.38.1. Module Signature
5.38.2. Weak pointers
5.38.3. The simple interface
5.38.4. The general interface
5.38.5. A precise semantics
5.38.6. Finalization for foreign objects
5.39. Word
5.39.1. Notes
5.39.2. Implementation notes
6. The net package: networking support
6.1. BSD: System database info
6.2. Socket: The high-level networking interface
6.2.1. Buffering
6.2.2. SIGPIPE
6.2.3. Sockets on Windows
6.3. SocketPrim: The low-level socket binding
6.4. URI
7. The num package: numeric operations
8. The posix package: POSIX support
8.1. Posix data types
8.2. Posix Process Primitives
8.3. Posix Process Environment
8.4. Posix operations on files and directories
8.5. Posix Input and Output Primitives
8.6. Posix, Device- and Class-Specific Functions
8.7. Posix System Databases
8.8. POSIX Errors
9. The text package: text manipulation
9.1. HaXml: Handling XML data
9.2. MatchPS: The Perl-like matching interface
9.3. Parsec: Parsing combinators
9.4. Pretty: Pretty printing combimators
9.5. Regex: The low-level regex matching interface
9.6. RegexString: Regex matching made simple
10. The util package: miscellaneous utilities
10.1. GetOpt: Command line parsing
10.2. Memo: Fast memo functions
10.3. QuickCheck
10.4. Readline: Command line editing
10.5. Select: Synchronous I/O multiplexing
10.5.1. Using hSelect with Concurrent Haskell
11. The Win32 package