refined: Refinement types with static and runtime checking

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

For an extensive introduction to the library please follow to this blog-post.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.1.0, 0.1.2, 0.1.2.1, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0, 0.3.0.0, 0.4, 0.4.1, 0.4.2, 0.4.2.1, 0.4.2.2, 0.4.3, 0.4.4, 0.5, 0.5.1, 0.6, 0.6.1, 0.6.2, 0.6.3, 0.7, 0.8, 0.8.1, 0.8.2, 0.8.2
Change log changelog.md
Dependencies aeson (>=0.9), base (>=4.11 && <5), bytestring (>=0.10), deepseq (>=1.4), exceptions (>=0.8), hashable (>=1.0), mtl (>=2.2.2), QuickCheck (>=2.1), template-haskell (>=2.9), text (>=1.2), these-skinny (>=0.7.5) [details]
License MIT
Copyright Copyright © 2015, Nikita Volkov Copyright © 2018, Remy Goldschmidt Copyright © 2020, chessai
Author Nikita Volkov <nikita.y.volkov@mail.ru>
Maintainer chessai <chessai1996@gmail.com>
Category Data
Home page https://github.com/nikita-volkov/refined
Bug tracker https://github.com/nikita-volkov/refined/issues
Source repo head: git clone git://github.com/nikita-volkov/refined.git
Uploaded by chessai at 2024-05-09T20:45:40Z

Modules

[Index] [Quick Jump]

Flags

Manual Flags

NameDescriptionDefault
aeson

You can disable the use of the aeson package using `-f-aeson`. . This may be useful for accelerating builds in sandboxes for expert users.

Enabled
quickcheck

You can disable the use of the QuickCheck package using `-f-QuickCheck`. . This may be useful for accelerating builds in sandboxes for expert users.

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for refined-0.8.2

[back to package description]

refined

Build Status

In type theory, a refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type.

This library allows one to capture the idea of a refinement type using the Refined type. A Refined p x wraps a value of type x, ensuring that it satisfies a type-level predicate p.

A simple introduction to this library can be found here: http://nikita-volkov.github.io/refined/