strict-types: A type level predicate ranging over strict types

[ bsd3, library, unclassified ] [ Propose Tags ]

A type class for types T where forall x :: T . rnf x = bot = rwhnf x = bot


[Skip to Readme]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6, 0.1.0.7, 0.1.1, 0.1.2, 0.1.3
Dependencies array, base (<5), bytestring, containers, foundation, text, unordered-containers, vector [details]
License BSD-3-Clause
Copyright Jose Iborra Lopez, 2017
Author Pepe Iborra
Maintainer Pepe Iborra (pepeiborra@gmail.com)
Revised Revision 1 made by PepeIborra at 2017-09-24T10:31:09Z
Home page https://github.com/pepeiborra/strict-types
Uploaded by PepeIborra at 2017-09-23T15:54:42Z
Distributions NixOS:0.1.3
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 6368 total (33 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-09-23 [all 1 reports]

Readme for strict-types-0.1.0.1

[back to package description]

Travis Build Status Hackage Stackage Nightly

strict-types

This package provides a type-level predicate Strict and a value level pattern IsStrict to constrain generic types.

> IsStrict (False)
False
> IsStrict (Identity False)
Identity False
> IsStrict (Identity (Just False))

<interactive>:1:1: error:
    • Maybe Bool has an unnamed lazy field in constructor Just
    • In the expression: IsStrict (Identity (Just False))
      In an equation for ‘it’: it = IsStrict (Identity (Just False))