leancheck-0.6.3: Cholesterol-free property-based testing

Copyright(c) 2015-2017 Rudy Matela
License3-Clause BSD (see the file LICENSE)
MaintainerRudy Matela <rudy@matela.com.br>
Safe HaskellNone
LanguageHaskell2010

Test.LeanCheck.Function.CoListable

Contents

Description

This module is part of LeanCheck, a simple enumerative property-based testing library.

This module exports a Listable instance for function enumeration by means of a CoListable typeclass. This is very similar to the coseries enumeration of SmallCheck.

This module does not currently work, it it just a sketch and a stub.

Documentation

(\+:/) :: [[a]] -> [[a]] -> [[a]] infixr 9 Source #

class CoListable a where Source #

Minimal complete definition

cotiers

Methods

cotiers :: [[b]] -> [[a -> b]] Source #

Instances

CoListable Bool Source # 

Methods

cotiers :: [[b]] -> [[Bool -> b]] Source #

CoListable Int Source # 

Methods

cotiers :: [[b]] -> [[Int -> b]] Source #

CoListable () Source # 

Methods

cotiers :: [[b]] -> [[() -> b]] Source #

CoListable Nat3 Source # 

Methods

cotiers :: [[b]] -> [[Nat3 -> b]] Source #

CoListable Nat2 Source # 

Methods

cotiers :: [[b]] -> [[Nat2 -> b]] Source #

CoListable Nat Source # 

Methods

cotiers :: [[b]] -> [[Nat -> b]] Source #

CoListable a => CoListable [a] Source # 

Methods

cotiers :: [[b]] -> [[[a] -> b]] Source #

CoListable a => CoListable (Maybe a) Source # 

Methods

cotiers :: [[b]] -> [[Maybe a -> b]] Source #

(CoListable a, CoListable b) => CoListable (Either a b) Source # 

Methods

cotiers :: [[b]] -> [[Either a b -> b]] Source #

(CoListable a, CoListable b) => CoListable (a, b) Source # 

Methods

cotiers :: [[b]] -> [[(a, b) -> b]] Source #

alts0 :: [[a]] -> [[a]] Source #

alts1 :: CoListable a => [[b]] -> [[a -> b]] Source #

alts2 :: (CoListable a, CoListable b) => [[c]] -> [[a -> b -> c]] Source #

alts3 :: (CoListable a, CoListable b, CoListable c) => [[d]] -> [[a -> b -> c -> d]] Source #

ftiers :: (CoListable a, Listable b) => [[a -> b]] Source #

Orphan instances

(CoListable a, Listable b) => Listable (a -> b) Source # 

Methods

tiers :: [[a -> b]] Source #

list :: [a -> b] Source #