Hoogle Search
Within LTS Haskell 24.34 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
Count, enumerate, rank and unrank combinatorial objects Counting, enumerating, ranking and unranking of combinatorial objects. Well-known and less well-known basic combinatoric problems and examples. The functions are not implemented in obviously stupid ways, but they are also not optimized to the maximum extent. The package is plain Haskell 98. See also:
- exact-combinatorics: Efficient computations of large combinatoric numbers.
- combinat: Library for a similar purpose with a different structure and selection of problems.
-
Additional shape types for the comfort-array package Some extra array shape types additional to the ones in the comfort-array package. These require some more package dependencies and use type-encoded natural numbers.
- Static.ZeroBased: Like Shape.ZeroBased but with type-encoded number as size.
- Simplex: Simplices of any dimension, where the dimension is encoded in the type. Only a private module for demonstration. Production-ready implementation in comfort-array.
-
Non-GC'd, contiguous storage for immutable data structures This package provides user-facing APIs for working with "compact regions", which hold a fully evaluated Haskell object graph. These regions maintain the invariant that no pointers live inside the struct that point outside it, which ensures efficient garbage collection without ever reading the structure contents (effectively, it works as a manually managed "oldest generation" which is never freed until the whole is released). This package is currently highly experimental, but we hope it may be useful to some people. It is GHC 8.2 and later only. The bare-bones library that ships with GHC is ghc-compact.
-
Monad for allocation and cleanup of application resources This library allows you to allocate resources with clean up strategies when initializing your application. It then provides a Monadic interface to compose multiple resources without having to deal with cleanup operations explicitely.
-
Utilities for Control.Lens.Cons concise provides a handful of functions to extend what you can do with Control.Lens.Cons.
-
Typeclasses, functions, and data types for concurrency and STM. A typeclass abstraction over much of Control.Concurrent (and some extras!). If you're looking for a general introduction to Haskell concurrency, you should check out the excellent Parallel and Concurrent Programming in Haskell, by Simon Marlow. If you are already familiar with concurrent Haskell, just change all the imports from Control.Concurrent.* to Control.Concurrent.Classy.* and fix the type errors.
-
Extra concurrency primitives The concurrent-extra package offers among other things the following selection of synchronisation primitives:
- Broadcast: Wake multiple threads by broadcasting a value.
- Event: Wake multiple threads by signalling an event.
- Lock: Enforce exclusive access to a resource. Also known as a binary semaphore or mutex. The package additionally provides an alternative that works in the STM monad.
- RLock: A lock which can be acquired multiple times by the same thread. Also known as a reentrant mutex.
- ReadWriteLock: Multiple-reader, single-writer locks. Used to protect shared resources which may be concurrently read, but only sequentially written.
- ReadWriteVar: Concurrent read, sequential write variables.
-
Ungarble output from several threads or commands Lets multiple threads and external processes concurrently output to the console, without it getting all garbled up. Built on top of that is a way of defining multiple output regions, which are automatically laid out on the screen and can be individually updated by concurrent threads. Can be used for progress displays etc.
-
A fast concurrent unique identifier supply with a pure API A fast supply of concurrent unique identifiers suitable for use within a single process. Once the initial Supply has been initialized, the remainder of the API is pure. See Control.Concurrent.Supply for details.
-
Parsing framework based on conduit. Please refer to README.