Hoogle Search

Within LTS Haskell 24.56 (ghc-9.10.3)

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

  1. package lawful-conversions

    Lawful typeclasses for bidirectional conversion between types

    Summary

    Lawful typeclasses capturing three patterns of bidirectional mapping and forming a layered hierarchy with an ascending strictness of laws.
    1. Smart constructor
    2. Canonicalization or lossy conversion
    3. Isomorphism or lossless conversion

    The conversion problem

    Have you ever looked for a toString function? How often do you import Data.Text.Lazy only to call its fromStrict? How about importing Data.ByteString.Builder only to call its toLazyByteString and then importing Data.ByteString.Lazy only to call its toStrict? Those all are 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 codereader, it's a burden to the implementor and the maintainer.

    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 behaviour 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 hierarchy, making it evident what any of its instances do and it provides property-tests for you to validate your instances.

    Prior work and acknowledgements

    This library is an offspring of the "isomorphism-class" library, expanding upon the patterns discovered there. Both libraries are maintained letting their designs compete. Some ideas and concepts are also shared with the following libraries:

  2. package lazysmallcheck

    A library for demand-driven testing of Haskell programs Lazy SmallCheck is a library for exhaustive, demand-driven testing of Haskell programs. It is based on the idea that if a property holds for a partially-defined input then it must also hold for all fully-defined refinements of the that input. Compared to `eager' input generation as in SmallCheck, Lazy SmallCheck may require significantly fewer test-cases to verify a property for all inputs up to a given depth.

  3. package leancheck-instances

    Common LeanCheck instances Listable instances for types provided by the Haskell Platform. The current objective is to include all types supported by quickcheck-instances: https://hackage.haskell.org/package/quickcheck-instances

  4. package leapseconds-announced

    Leap seconds announced at library release time. Provides an easy to use static Data.Time.Clock.TAI.LeapSecondTable with the leap seconds announced at library release time.

  5. package learn-physics

    Haskell code for learning physics A library of functions for vector calculus, calculation of electric field, electric flux, magnetic field, and other quantities in classical mechanics, electromagnetic theory, and quantum mechanics.

  6. package lens-csv

    Please see the README on GitHub at https://github.com/ChrisPenner/lens-csv#readme

  7. package lens-family-th

    Generate lens-family style lenses (see README.md)

  8. package lens-regex

    Lens powered regular expression lens interface for regex-base. Please see the README on Github at https://github.com/himura/lens-regex#readme

  9. package lens-regex-pcre

    A lensy interface to regular expressions Please see the README on GitHub at https://github.com/ChrisPenner/lens-regex-pcre#readme

  10. package leveldb-haskell

    Haskell bindings to LevelDB From http://code.google.com/p/snappy: LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. This library provides a Haskell language binding to LeveldDB. It is in very early stage and has seen very limited testing. Note: as of v1.3, LevelDB can be built as a shared library. Thus, as of v0.1.0 of this library, LevelDB is no longer bundled and must be installed on the target system (version 1.7 or greater is required).

Page 212 of many | Previous | Next