Hoogle Search
Within LTS Haskell 24.41 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
Autodocodec interpreters for yaml Autodocodec interpreters for yaml
-
Unicode alternatives for common functions and operators This package defines new symbols for a number of functions, operators and types in the base package. All symbols are documented with their actual definition and information regarding their Unicode code point. They should be completely interchangeable with their definitions. For further Unicode goodness you can enable the UnicodeSyntax language extension [1]. This extension enables Unicode characters to be used to stand for certain ASCII character sequences, i.e. → instead of ->, ∀ instead of forall and many others. Original idea by Péter Diviánszky. [1] https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#unicode-syntax
-
data serialization/deserialization conduit library The binary-conduit package. Allow binary serialization using iterative conduit interface.
-
Orphan instances for binary `binary-instances` defines orphan instances for types in some popular packages.
-
Compatibility package for binary; provides instances This package provides instances defined in later versions of binary package Prior version 1 this packages provided instances for other packages. That functionality is moved to binary-instances package.
-
Space-efficient bit vectors A newtype over Bool with a better Vector instance: 8x less memory, up to 3500x faster. The vector package represents unboxed arrays of Bools spending 1 byte (8 bits) per boolean. This library provides a newtype wrapper Bit and a custom instance of an unboxed Vector, which packs bits densely, achieving an 8x smaller memory footprint. The performance stays mostly the same; the most significant degradation happens for random writes (up to 10% slower). On the other hand, for certain bulk bit operations Vector Bit is up to 3500x faster than Vector Bool.
Thread safety
- Data.Bit is faster, but writes and flips are not thread-safe. This is because naive updates are not atomic: they read the whole word from memory, then modify a bit, then write the whole word back. Concurrently modifying non-intersecting slices of the same underlying array may also lead to unexpected results, since they can share a word in memory.
- Data.Bit.ThreadSafe is slower (usually 10-20%), but writes and flips are thread-safe. Additionally, concurrently modifying non-intersecting slices of the same underlying array works as expected. However, operations that affect multiple elements are not guaranteed to be atomic.
Similar packages
-
Auto-generated interface to Fortran BLAS BLAS is a package for efficient basic linear algebra operations. The reference implementation is written in FORTRAN. This is an automatically generated low-level interface. We provide bindings to functions of all variants for Float, Double, Complex Float and Complex Double. We do not use TemplateHaskell nor HSC nor CHS, but instead Haskell 98 code generated by the custom lapack-ffi-tools package.
-
Fast rendering of common datatypes A library for efficiently rendering Haskell datatypes to bytestrings. Note: if you use GHCi or Template Haskell, please see the README file for important details about building this package, and other packages that depend on it: https://github.com/swamp-agr/blaze-textual#readme
-
Read and write uncompressed BMP image files. Read and write uncompressed BMP image files. 100% robust Haskell implementation.
-
Making de Bruijn Succ Less We represent the target language itself as an ideal monad supplied by the user, and provide a Scope monad transformer for introducing bound variables in user supplied terms. Users supply a Monad and Traversable instance, and we traverse to find free variables, and use the Monad to perform substitution that avoids bound variables. Slides describing and motivating this approach to name binding are available online at: http://www.slideshare.net/ekmett/bound-making-de-bruijn-succ-less The goal of this package is to make it as easy as possible to deal with name binding without forcing an awkward monadic style on the user. With generalized de Bruijn term you can lift whole trees instead of just applying succ to individual variables, weakening the all variables bound by a scope and greatly speeding up instantiation. By giving binders more structure we permit easy simultaneous substitution and further speed up instantiation.