Hoogle Search
Within LTS Haskell 24.45 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
Trie-based memo functions MemoTrie provides a basis for memoized functions over some domains, using tries. It's based on ideas from Ralf Hinze and code from Spencer Janssen. Generic support thanks to Sam Boosalis. Project wiki page: http://haskell.org/haskellwiki/MemoTrie Ç 2008-2019 by Conal Elliott; BSD3 license.
-
A raw binding for the OpenGL graphics system OpenGLRaw is a raw Haskell binding for the OpenGL 4.6 graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw offers access to all necessary functions, tokens and types plus a general facility for loading extension entries. The module hierarchy closely mirrors the naming structure of the OpenGL extensions, making it easy to find the right module to import. All API entries are loaded dynamically, so no special C header files are needed for building this package. If an API entry is not found at runtime, a userError is thrown. OpenGL is the industry's most widely used and supported 2D and 3D graphics application programming interface (API), incorporating a broad set of rendering, texture mapping, special effects, and other powerful visualization functions. For more information about OpenGL and its various extensions, please see http://www.opengl.org/ and http://www.opengl.org/registry/.
-
Much safer replacement for QSemN, QSem, and SampleVar This provides a much safer semaphore than the QSem, QSemN, SampleVar in base. Those base modules are not exception safe and can be broken by killThread. See https://github.com/ChrisKuklewicz/SafeSemaphore for more details.
-
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.