chalmers-lava2000-1.6.1: Hardware description EDSL

Safe HaskellNone
LanguageHaskell98

Lava.Property

Documentation

data Gen a Source #

Instances

Monad Gen Source # 

Methods

(>>=) :: Gen a -> (a -> Gen b) -> Gen b #

(>>) :: Gen a -> Gen b -> Gen b #

return :: a -> Gen a #

fail :: String -> Gen a #

Functor Gen Source # 

Methods

fmap :: (a -> b) -> Gen a -> Gen b #

(<$) :: a -> Gen b -> Gen a #

Applicative Gen Source # 

Methods

pure :: a -> Gen a #

(<*>) :: Gen (a -> b) -> Gen a -> Gen b #

(*>) :: Gen a -> Gen b -> Gen b #

(<*) :: Gen a -> Gen b -> Gen a #

Checkable a => Checkable (Gen a) Source # 

Methods

property :: Gen a -> Property Source #

generate :: Gen a -> IO a Source #

class ChoiceWithSig a Source #

Minimal complete definition

ifThenElseWithSig

Instances

ChoiceWithSig Bool Source # 

Methods

ifThenElseWithSig :: Choice b => Signal Bool -> (b, b) -> b

class Fresh a where Source #

Minimal complete definition

fresh

Methods

fresh :: Gen a Source #

Instances

Fresh () Source # 

Methods

fresh :: Gen () Source #

ConstructiveSig a => Fresh (Signal a) Source # 

Methods

fresh :: Gen (Signal a) Source #

(CoFresh a, Choice b, Fresh b) => Fresh (a -> b) Source # 

Methods

fresh :: Gen (a -> b) Source #

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

Methods

fresh :: Gen (a, b) Source #

(Fresh a, Fresh b, Fresh c) => Fresh (a, b, c) Source # 

Methods

fresh :: Gen (a, b, c) Source #

(Fresh a, Fresh b, Fresh c, Fresh d) => Fresh (a, b, c, d) Source # 

Methods

fresh :: Gen (a, b, c, d) Source #

(Fresh a, Fresh b, Fresh c, Fresh d, Fresh e) => Fresh (a, b, c, d, e) Source # 

Methods

fresh :: Gen (a, b, c, d, e) Source #

(Fresh a, Fresh b, Fresh c, Fresh d, Fresh e, Fresh f) => Fresh (a, b, c, d, e, f) Source # 

Methods

fresh :: Gen (a, b, c, d, e, f) Source #

(Fresh a, Fresh b, Fresh c, Fresh d, Fresh e, Fresh f, Fresh g) => Fresh (a, b, c, d, e, f, g) Source # 

Methods

fresh :: Gen (a, b, c, d, e, f, g) Source #

class CoFresh a where Source #

Minimal complete definition

cofresh

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen (a -> b) Source #

Instances

CoFresh () Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen (() -> b) Source #

CoFresh a => CoFresh [a] Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ([a] -> b) Source #

ChoiceWithSig a => CoFresh (Signal a) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen (Signal a -> b) Source #

(Finite a, CoFresh b) => CoFresh (a -> b) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a -> b) -> b) Source #

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

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b) -> b) Source #

(CoFresh a, CoFresh b, CoFresh c) => CoFresh (a, b, c) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b, c) -> b) Source #

(CoFresh a, CoFresh b, CoFresh c, CoFresh d) => CoFresh (a, b, c, d) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b, c, d) -> b) Source #

(CoFresh a, CoFresh b, CoFresh c, CoFresh d, CoFresh e) => CoFresh (a, b, c, d, e) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b, c, d, e) -> b) Source #

(CoFresh a, CoFresh b, CoFresh c, CoFresh d, CoFresh e, CoFresh f) => CoFresh (a, b, c, d, e, f) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b, c, d, e, f) -> b) Source #

(CoFresh a, CoFresh b, CoFresh c, CoFresh d, CoFresh e, CoFresh f, CoFresh g) => CoFresh (a, b, c, d, e, f, g) Source # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen ((a, b, c, d, e, f, g) -> b) Source #

double :: Gen a -> Gen (a, a) Source #

triple :: Gen a -> Gen (a, a, a) Source #

list :: Fresh a => Int -> Gen [a] Source #

listOf :: Int -> Gen a -> Gen [a] Source #

results :: Int -> Gen (a -> b) -> Gen (a -> [b]) Source #

sequential :: (CoFresh a, Fresh b, Choice b) => Int -> Gen (a -> b) Source #

forAll :: (ShowModel a, Checkable b) => Gen a -> (a -> b) -> Property Source #

newtype Property Source #

Constructors

P (Gen ([Signal Bool], Model -> [[String]])) 

class Checkable a where Source #

Minimal complete definition

property

Methods

property :: a -> Property Source #

class ShowModel a where Source #

Minimal complete definition

showModel

Methods

showModel :: Model -> a -> [String] Source #

Instances

ShowModel () Source # 

Methods

showModel :: Model -> () -> [String] Source #

ShowModel a => ShowModel [a] Source # 

Methods

showModel :: Model -> [a] -> [String] Source #

ShowModel (Signal a) Source # 

Methods

showModel :: Model -> Signal a -> [String] Source #

ShowModel (a -> b) Source # 

Methods

showModel :: Model -> (a -> b) -> [String] Source #

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

Methods

showModel :: Model -> (a, b) -> [String] Source #

(ShowModel a, ShowModel b, ShowModel c) => ShowModel (a, b, c) Source # 

Methods

showModel :: Model -> (a, b, c) -> [String] Source #

(ShowModel a, ShowModel b, ShowModel c, ShowModel d) => ShowModel (a, b, c, d) Source # 

Methods

showModel :: Model -> (a, b, c, d) -> [String] Source #

(ShowModel a, ShowModel b, ShowModel c, ShowModel d, ShowModel e) => ShowModel (a, b, c, d, e) Source # 

Methods

showModel :: Model -> (a, b, c, d, e) -> [String] Source #

(ShowModel a, ShowModel b, ShowModel c, ShowModel d, ShowModel e, ShowModel f) => ShowModel (a, b, c, d, e, f) Source # 

Methods

showModel :: Model -> (a, b, c, d, e, f) -> [String] Source #

(ShowModel a, ShowModel b, ShowModel c, ShowModel d, ShowModel e, ShowModel f, ShowModel g) => ShowModel (a, b, c, d, e, f, g) Source # 

Methods

showModel :: Model -> (a, b, c, d, e, f, g) -> [String] Source #

type Model = [(String, [String])] Source #

properties :: Checkable a => a -> IO ([Signal Bool], Model -> [[String]]) Source #