Hoogle Search
Within LTS Haskell 24.57 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
A library for algebraic graph construction and transformation Alga is a library for algebraic construction and manipulation of graphs in Haskell. See this paper for the motivation behind the library, the underlying theory and implementation details. The top-level module Algebra.Graph defines the main data type for algebraic graphs Graph, as well as associated algorithms. For type-safe representation and manipulation of non-empty algebraic graphs, see Algebra.Graph.NonEmpty. Furthermore, algebraic graphs with edge labels are implemented in Algebra.Graph.Labelled. The library also provides conventional graph data structures, such as Algebra.Graph.AdjacencyMap along with its various flavours:
- adjacency maps specialised to graphs with vertices of type Int (Algebra.Graph.AdjacencyIntMap),
- non-empty adjacency maps (Algebra.Graph.NonEmpty.AdjacencyMap),
- adjacency maps for undirected bipartite graphs (Algebra.Graph.Bipartite.AdjacencyMap),
- adjacency maps with edge labels (Algebra.Graph.Labelled.AdjacencyMap),
- acyclic adjacency maps (Algebra.Graph.Acyclic.AdjacencyMap),
-
Binding to the ALSA Library API (PCM audio). This package provides access to ALSA realtime audio signal input and output. For MIDI support see alsa-seq.
-
Append-only cooperative agreement
-
Package implementing core logic for refreshing of expiring data. This package can be used for refreshing of expiring data according to a user-provided action. Using callbacks, the user can decide how she or he would like to be informed about data refreshing.
-
Mutable counters that can be modified with atomic operatinos This package defines Counter type that can be safely modified concurrently from multiple threads. The type supports only few operations, namely read, write, cas (compare and swap), add, subtract and a few bitwise ones like or, and xor. Most common use case is having a shared counter that multiple threads increment. Another potential use case is lightweight locks.
-
Atomically write to a file Atomically write to a file on POSIX-compliant systems while preserving permissions. On most Unix systems, mv is an atomic operation. This makes it simple to write to a file atomically just by using the mv operation. However, this will destroy the permissions on the original file. This library does the following to preserve permissions while atomically writing to a file:
- If an original file exists, take those permissions and apply them to the temp file before mving the file into place.
- If the original file does not exist, create a following with default permissions (based on the currently-active umask).
- Ruby on Rails includes a similar method called atomic_write
- Chef includes atomic update functionality
- There is a python library for atomically updating a file
import System.AtomicWrite.Writer.ByteString
Then you can use the atomicWriteFile function that accepts a FilePath and a ByteString, e.g.:atomicWriteFile myFilePath myByteString
-
Binary processing extensions to Attoparsec. This package adds a collection of helper functions to make the task dealing with binary data of varying endianness from within an Attoparsec parser easier.
-
Parsers for the standard Haskell data types Collection of parsers for various common data formats.
-
Library to authenticate with OAuth for Haskell web applications. API docs and the README are available at http://www.stackage.org/package/authenticate-oauth.
-
Autodocodec interpreters for JSON Schema Autodocodec interpreters for JSON Schema