Hoogle Search

Within LTS Haskell 24.28 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. package hvega

    Create Vega-Lite visualizations (version 4) in Haskell. This is based on the elm-vegalite package (http://package.elm-lang.org/packages/gicentre/elm-vegalite/latest) by Jo Wood of the giCentre at the City University of London.

  2. package hxt-regex-xmlschema

    A regular expression library for W3C XML Schema regular expressions This library supports full W3C XML Schema regular expressions inclusive all Unicode character sets and blocks. The complete grammar can be found under http://www.w3.org/TR/xmlschema11-2/#regexs. It is implemented by the technique of derivations of regular expressions. The W3C syntax is extended to support not only union of regular sets, but also intersection, set difference, exor. Matching of subexpressions is also supported. The library can be used for constricting lightweight scanners and tokenizers. It is a standalone library, no external regex libraries are used. Extensions in 9.2: The library does nor only support String's, but also ByteString's and Text in strict and lazy variants

  3. package ini

    Configuration files in the INI format. Quick and easy configuration files in the INI format.

  4. package integer-roots

    Integer roots and perfect powers Calculating integer roots and testing perfect powers of arbitrary precision. Originally part of arithmoi package.

  5. package isomorphism-class

    Isomorphism typeclass as a lawful solution to the conversion problem

    Conversion problem

    How often do you import Data.Text.Lazy only to call fromStrict or toStrict? How about importing Data.ByteString.Builder only to call its toLazyByteString and then importing Data.ByteString.Lazy only to call its toStrict? How often do you convert from DiffTime to NominalDiffTime or back? These are all instances of one pattern. They are conversions between different representations of the same information. Codebases that don't attempt to abstract over this pattern tend to be sprawling with this type of boilerplate. It's noise to the code reader, it's a burden to implementors and maintainers.

    Why another conversion library?

    Many libraries exist that approach the conversion problem. However, most of them provide lawless typeclasses, leaving it up to the author of the instance to define what makes a proper conversion. This results in inconsistencies across instances, their behavior not being evident to the user and no way to check whether an instance is correct. This library tackles this problem with a lawful typeclass, making it evident what any of its instances do, and it provides a property-test for you to validate your instances.

    The insight

    The key insight of this library is that if you add a requirement for the conversion to be lossless and to have a mirror conversion in the opposite direction, there usually appears to be only one way of defining it. That makes it very clear what the conversion does to the user and how to define it for the author of the conversion. It also gives clear criteria for validating whether the instances are correct, which can be encoded in property-tests. That insight itself stems from an observation that almost all of the practical conversions in Haskell share a property: you can restore the original data from its converted form. E.g., you can get a text from a text-builder and you can create a text-builder from a text, you can convert a bytestring into a list of bytes and vice-versa, bytestring to/from bytearray, strict bytestring to/from lazy, list to/from sequence, sequence to/from vector, set of ints to/from int-set. In other words, it's always a two-way street with them and there are many instances of this pattern. A few other accidental findings like encoding this property with recursive typeclass constraints and fine-tuning for the use of the TypeApplications extension resulted in a terse and clear API.

    Other work and acknowledgements

    • lawful-conversions - sibling of this library expanding upon the same insights to also cover the patterns of smart construction and canonicalization. It's more involved and has different tradeoffs. Both libraries are maintained, letting their designs compete.
    Some ideas and concepts are also shared with the following libraries:

  6. package js-dgtable

    Obtain minified jquery.dgtable code This package bundles the minified jquery.dgtable code into a Haskell package, so it can be depended upon by Cabal packages. The first three components of the version number match the upstream jquery.dgtable version. The package is designed to meet the redistribution requirements of downstream users (e.g. Debian).

  7. package js-flot

    Obtain minified flot code This package bundles the minified Flot code (a jQuery plotting library) into a Haskell package, so it can be depended upon by Cabal packages. The first three components of the version number match the upstream flot version. The package is designed to meet the redistribution requirements of downstream users (e.g. Debian).

  8. package katip

    A structured logging framework. Katip is a structured logging framework. See README.md for more details.

  9. package keyed-vals

    An abstract Handle for accessing collections in stores like Redis Provides an abstract Handle for accessing stored key-value collections, and useful combinators that use Handle. One implementation of Handle accesses collections in Redis other backends are possible. keyed-vals also provides a typed interface to the storage backend that allows the path in the storage backend to be declaratively linked to the types of data stored via a straightforward typeclass declaration. Read this short example for an introduction its usage.

  10. package lattices

    Fine-grained library for constructing and manipulating lattices In mathematics, a lattice is a partially ordered set in which every two elements x and y have a unique supremum (also called a least upper bound, join, or x \/ y) and a unique infimum (also called a greatest lower bound, meet, or x /\ y). This package provide type-classes for different lattice types, as well as a class for the partial order.

Page 86 of many | Previous | Next