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 = ⊥ = rwhnf x = ⊥


[Skip to Readme]

Modules

[Index]

Downloads

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, hashable, text, unordered-containers, vector [details]
License BSD-3-Clause
Copyright Jose Iborra Lopez, 2017
Author Pepe Iborra
Maintainer Pepe Iborra (pepeiborra@gmail.com)
Home page https://github.com/pepeiborra/strict-types
Uploaded by PepeIborra at 2017-09-24T11:16:06Z
Distributions NixOS:0.1.3
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 6366 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-24 [all 1 reports]

Readme for strict-types-0.1.0.2

[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))