Hoogle Search
Within LTS Haskell 24.49 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
Arrays where the index type is a function of the shape type Arrays from the basic array package are already very powerful compared with arrays in other languages. They may have any number of dimensions, are type safe and defined in a uniform way using the Ix class with free choice of the lower bounds (0, 1, or whatever you like). This package goes one step further: The shape and the index type are different, but the index type is a type function of the shape type. This offers much more flexibility and type safety. Some Shape example types are:
- Range: Allow dynamic choice of lower and upper array bounds such as in the Arrays from the array package. You can combine it with other shapes in other dimensions. It allows you to describe the bounds of each dimension individually.
- Shifted: Describe array bounds by start index and length. It is sometimes more natural to use these parameters. E.g. a non-negative index type like Word cannot represent -1 and thus cannot encode an empty range starting with index 0.
- ZeroBased, OneBased: Arrays with fixed lower bound, either 0 or 1, respectively.
- Cyclic: Indices with wrap-around semantics.
- Zero, (): Arrays with fixed size 0 or 1, respectively.
- Enumeration: Arrays with indices like LT, EQ, GT and a shape of fixed size.
- NestedTuple: Arrays with shapes that are compatible to nested tuples like (a,(a,a)) and indices like fst and fst.snd.
- (::+): The Append type constructor allows to respresent block arrays, e.g. block matrices. It also allows to represent non-empty arrays via ()::+sh.
- Set: Use an arbitrary ordered set as index set.
- Map: Concatenate a set of shapes. In a higher dimensional array it can be used for block matrices with a dynamic number of blocks but block sizes of the same shape type.
- Triangular: A 2D array with the shape of a lower or upper triangular matrix.
- Simplex: Simplices of any dimension, where the dimension is encoded in the type. An index is a tuple of monotonic ordered sub-indices.
- Square: A 2D array where both dimensions always have equal size.
- Cube: A 3D array where all three dimensions always have equal size.
- Tagged: Statically distinguish shapes and indices that are isomorphic.
- Fast Linear Algebra using the packages comfort-blas and lapack. The lapack package defines even more fancy shapes like tall rectangular matrices, triangular matrices and banded matrices.
- Fast Fourier Transforms using the package comfort-fftw
- Fast Linear Programming using the packages comfort-glpk, coinor-clp, highs-lp
- Efficient Array Processing via LLVM Just-In-Time code generation using the package knead.
-
Parser/Serialiser for IEEE-754 floating-point values Convert Float and Decimal values to/from raw octets.
-
Dependent finite maps (partial dependent products) Provides a type called DMap which generalizes Data.Map.Map, allowing keys to specify the type of value that can be associated with them.
-
Generic finger-tree structure, with example instances A general sequence representation with arbitrary annotations, for use as a base for implementations of various collection types, with examples, as described in section 4 of
- Ralf Hinze and Ross Paterson, "Finger trees: a simple general-purpose data structure", Journal of Functional Programming 16:2 (2006) pp 197-217. https://staff.city.ac.uk/~ross/papers/FingerTree.html
-
Generic implementation for QuickCheck's Arbitrary Generic implementations of methods of the Arbitrary class from the QuickCheck library. The approach taken here can lead to diverging instances for mutually recursive types but is safe for simply recursive ones and guarantees flat distribution for constructors of sum-types.
-
simple performant time related library Simple time library focusing on simple but powerful and performant API The backbone of the library are the Timeable and Time type classes. Each Timeable instances can be converted to type that has a Time instances, and thus are different representations of current time.
-
Utility functions for testing Megaparsec parsers with Hspec Utility functions for testing Megaparsec parsers with Hspec.
-
A collection of tools for processing XML with Haskell. The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox uses a generic data model for representing XML documents, including the DTD subset and the document subset, in Haskell. It contains a validating XML parser, a HTML parser, namespace support, an XPath expression evaluator, an XSLT library, a RelaxNG schema validator and funtions for serialization and deserialization of user defined data. The library makes extensive use of the arrow approach for processing XML. Since version 9 the toolbox is partitioned into various (sub-)packages. This package contains the core functionality, hxt-curl, hxt-tagsoup, hxt-relaxng, hxt-xpath, hxt-xslt, hxt-regex-xmlschema contain the extensions. hxt-unicode contains encoding and decoding functions, hxt-charproperties char properties for unicode and XML. Changes from 9.3.1.21: ghc-9.0 compatibility Changes from 9.3.1.20: ghc 8.10 and 9.0 compatibility, tuple picker up to 24-tuples, Either instance for xpickle Changes from 9.3.1.19: ghc-8.8.2 compatibility Changes from 9.3.1.15: Bug in quoting PI instructions in showXmlTrees fixed Changes from 9.3.1.14: For ghc-7.10 network-uri is automatically selected Changes from 9.3.1.13: ghc-7.10 compatibility Changes from 9.3.1.12: Bug when unpickling an empty attribute value removed Changes from 9.3.1.11: Bug fix in haddock comments Changes from 9.3.1.10: Bug in DTD validation, space and time leak in delta removed Changes from 9.3.1.9: lower bound of mtl dependency lowered to 2.0.1 Changes from 9.3.1.8: Bug in hread removed Changes from 9.3.1.7: Foldable and Traversable instances for NTree added Control.Except used instead of deprecated Control.Error Changes from 9.3.1.6: canonicalize added in hread and hreadDoc Changes from 9.3.1.4: conditionally (no default) dependency from networt changed to network-uri with flag "network-uri" Changes from 9.3.1.3: warnings from ghc-7.8.1 removed Changes from 9.3.1.2: https as protocol added Changes from 9.3.1.1: new parser xreadDoc Changes from 9.3.1.0: in readString all input decoding switched off Changes from 9.3.0.1: lower bound for network set to be >= 2.4 Changes from 9.3.0: upper bound for network set to be < 2.4 (URI signatures changed in 2.4) Changes from 9.2.2: XMLSchema validation integrated Changes from 9.2.1: user defined mime type handlers added Changes from 9.2.0: New warnings from ghc-7.4 removed
-
Integer logarithms. Math.NumberTheory.Logarithms and Math.NumberTheory.Powers.Integer from the arithmoi package. Also provides GHC.Integer.Logarithms.Compat and Math.NumberTheory.Power.Natural modules, as well as some additional functions in migrated modules.
-
Enumerative property-based testing LeanCheck is a simple enumerative property-based testing library. Properties are defined as Haskell functions returning a boolean value which should be true for all possible choices of argument values. LeanCheck applies enumerated argument values to these properties in search for a counterexample. Properties can be viewed as parameterized unit tests. LeanCheck works by producing tiers of test values: a possibly infinite list of finite sublists of same-and-increasingly-sized values. LeanCheck has lean core with only 200 lines of Haskell code.