refined1: Refinement types with static and runtime checking (+ Refined1)

[ data, deprecated, library, mit ] [ Propose Tags ]
Deprecated in favor of rerefined

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


[Skip to Readme]

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

Candidates

  • No Candidates
Versions [RSS] 0.9.0
Change log changelog.md
Dependencies aeson (>=0.9 && <2.2), base (>=4.11 && <4.19), bytestring (>=0.10 && <0.12), deepseq (>=1.4 && <1.5), exceptions (>=0.8 && <0.11), hashable (>=1.0 && <1.5), mtl (>=2.2.2 && <2.4), QuickCheck (>=2.1 && <2.15), template-haskell (>=2.9 && <2.21), text (>=1.2 && <2.1), these-skinny (>=0.7.5 && <0.8) [details]
License MIT
Copyright Copyright © 2015, Nikita Volkov Copyright © 2018, Remy Goldschmidt Copyright © 2020, chessai Copyright © 2023, Ben Orchard
Author Nikita Volkov <nikita.y.volkov@mail.ru>
Maintainer Ben Orchard <thefirstmuffinman@gmail.com>
Category Data
Home page https://github.com/raehik/refined/tree/refined1-hackage
Uploaded by raehik at 2023-05-10T14:27:10Z
Distributions NixOS:0.9.0
Reverse Dependencies 2 direct, 1 indirect [details]
Downloads 91 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for refined1-0.9.0

[back to package description]

refined1

Fork of nikita-volkov/refined with minimal changes. Hopefully temporary.

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/