Haskell Libraries

The GHC Team


Table of Contents
1. Introduction
1.1. Naming conventions
1.1.1. Constructor names
1.1.2. Accessor names
1.1.3. Modificator names
1.1.4. Predicate names
1.1.5. Names for conversions
1.1.6. Miscellaneous naming conventions
1.2. Miscellaneous conventions
1.3. Known inconsistencies
2. The concurrent category: concurrency support
2.1. Concurrent Haskell
2.2. Concurrency Basics
2.3. Scheduling
2.3.1. Thread Waiting
2.3.2. Blocking
2.4. Concurrency abstractions
2.4.1. Chan: Channels
2.4.2. CVar: Channel variables
2.4.3. MVar: Synchronising variables
2.4.4. QSem: General semaphores
2.4.5. QSemN: Quantity semaphores
2.4.6. SampleVar: Sample variables
2.4.7. Merging Streams
2.5. The Concurrent library interface
2.6. GHC-specific concurrency issues
2.6.1. Terminating the program
2.6.2. Pre-emption
3. The data category: datatypes
3.1. Edison
3.2. The FiniteMap type
3.3. Set
4. The lang category: language support
4.1. Addr
4.1.1. Address Type and Arithmetic
4.1.2. The Standard C-side Interface
4.2. Bits
4.3. ByteArray
4.4. CCall
4.5. CError
4.6. CForeign
4.7. CTypes
4.7.1. Integral types
4.7.2. Floating types
4.8. CTypesISO
4.8.1. Integral types
4.8.2. Numeric types
4.8.3. Misc types
4.9. CString
4.10. DiffArray
4.11. Dynamic
4.11.1. Representing types
4.11.2. The Typeable class
4.11.3. Utility functions
4.12. Exception
4.12.1. Kinds of exception
4.12.2. Throwing exceptions
4.12.3. The catch functions
4.12.4. The try functions
4.12.5. Dynamic Exceptions
4.12.6. Other Utilities
4.12.7. Asynchronous exceptions
4.13. Foreign
4.14. ForeignObj
4.14.1. The Standard Interface
4.14.2. The Standard C-side Interface
4.14.3. Deprecated Functions
4.15. ForeignPtr
4.15.1. The Haskell-side Interface
4.15.2. The C-side Interface
4.16. GlaExts
4.17. IArray
4.17.1. IArray and HasBounds type classes
4.17.2. UArray: immutable unboxed arrays
4.17.3. Useful combinators
4.18. Int
4.18.1. Notes
4.18.2. Deprecated Functions
4.19. IOExts
4.19.1. IO monad extensions
4.19.2. Mutable Variables
4.19.3. Mutable Arrays
4.19.4. Extended file modes
4.19.5. Bulk transfers
4.19.6. Terminal control
4.19.7. Redirecting handles
4.19.8. Trace
4.19.9. Extra IOError Predicates
4.19.10. Miscellany
4.20. LazyST
4.21. MArray
4.21.1. Freezing and thawing arrays
4.21.2. Useful combinators
4.22. MarshalAlloc
4.23. MarshalArray
4.24. MarshalError
4.25. MarshalUtils
4.26. MutableArray
4.26.1. Mutable arrays
4.26.2. Mutable byte arrays
4.27. NumExts
4.28. PackedString
4.29. Ptr
4.29.1. Data Pointers
4.29.2. Function Pointers
4.29.3. The Standard C-side Interface
4.30. ShowFunctions
4.31. ST
4.32. Stable
4.33. StableName
4.34. StablePtr
4.34.1. The Standard Interface
4.34.2. The Standard C-side Interface
4.34.3. Deprecated Functions
4.35. Storable
4.36. StorableArray
4.37. SystemExts
4.38. Weak
4.38.1. Module Signature
4.38.2. Weak pointers
4.38.3. The simple interface
4.38.4. The general interface
4.38.5. A precise semantics
4.38.6. Finalization for foreign objects
4.39. Word
4.39.1. Notes
4.39.2. Implementation notes
5. The net category: networking support
5.1. BSD: System database info
5.2. Socket: The high-level networking interface
5.2.1. Buffering
5.2.2. SIGPIPE
5.2.3. Sockets on Windows
5.3. SocketPrim: The low-level socket binding
5.4. URI
6. The num category: numeric operations
7. The posix category: POSIX support
7.1. Posix data types
7.2. Posix Process Primitives
7.3. Posix Process Environment
7.4. Posix operations on files and directories
7.5. Posix Input and Output Primitives
7.6. Posix, Device- and Class-Specific Functions
7.7. Posix System Databases
7.8. POSIX Errors
8. The text category: text manipulation
8.1. HaXml: Handling XML data
8.2. MatchPS: The Perl-like matching interface
8.3. Parsec: Parsing combinators
8.4. Pretty: Pretty printing combimators
8.5. Regex: The low-level regex matching interface
8.6. RegexString: Regex matching made simple
9. The util category: miscellaneous utilities
9.1. GetOpt: Command line parsing
9.2. Memo: Fast memo functions
9.3. QuickCheck
9.4. Readline: Command line editing
9.5. Select: Synchronous I/O multiplexing
9.5.1. Using hSelect with Concurrent Haskell
10. Win32