@hackage / refined

Refinement types with static and runtime checking

Latest0.8.2

About

Metadata

  • Last updated , by chessai
  • License MIT
  • Maintained by: chessai <chessai1996@gmail.com>

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 9.6.1
  2. 9.4.2
  3. 9.2.4
  4. 9.0.2
  5. 8.10.7
  6. 8.6.5
  7. 8.4.4

Package Flags

Use the -f option with cabal commands to enable flags

    aeson (on by default)

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

    quickcheck (on by default)

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

Readme

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/