IOTasks-2.2.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.IOTasks.Var

Synopsis

Documentation

data Var a where Source #

Constructors

IntVar :: Varname -> Var Integer 
BoolVar :: Varname -> Var Bool 
StringVar :: Varname -> Var String 
EmbeddedVar :: (Embeddable a, Show a, Read a) => TypeRep a -> Varname -> Var (Embedded a) 

Instances

Instances details
VarExp Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: Var a -> [Var a] Source #

GCompare Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

gcompare :: forall (a :: k) (b :: k). Var a -> Var b -> GOrdering a b #

GEq Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

geq :: forall (a :: k) (b :: k). Var a -> Var b -> Maybe (a :~: b) #

Show (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> Var a -> ShowS #

show :: Var a -> String #

showList :: [Var a] -> ShowS #

Eq (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: Var a -> Var a -> Bool #

(/=) :: Var a -> Var a -> Bool #

Ord (Var a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

compare :: Var a -> Var a -> Ordering #

(<) :: Var a -> Var a -> Bool #

(<=) :: Var a -> Var a -> Bool #

(>) :: Var a -> Var a -> Bool #

(>=) :: Var a -> Var a -> Bool #

max :: Var a -> Var a -> Var a #

min :: Var a -> Var a -> Var a #

pattern Var :: (Varname, TypeRep a) -> Var a Source #

class Embeddable a where Source #

Values embeddable into a finite set of integers

Laws:

asInteger . asOriginal = id

For types with Eq instances that induce non-trivial equivalence classes, at least the weaker

asOriginal (asInteger x) == x = True

should hold. However program coverage is weakened in such scenarios, as generated inputs will only ever contain values from the co-domain of asOriginal.

data Embedded a where Source #

Constructors

Embedded :: (Show a, Embeddable a) => Integer -> Embedded a 

Instances

Instances details
(Show a, Read a, Embeddable a) => Read (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Show a => Show (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

showsPrec :: Int -> Embedded a -> ShowS #

show :: Embedded a -> String #

showList :: [Embedded a] -> ShowS #

Eq (Embedded a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: Embedded a -> Embedded a -> Bool #

(/=) :: Embedded a -> Embedded a -> Bool #

data SomeVar where Source #

Constructors

SomeVar :: Typeable a => Var a -> SomeVar 

Instances

Instances details
Show SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

Eq SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: SomeVar -> SomeVar -> Bool #

(/=) :: SomeVar -> SomeVar -> Bool #

Ord SomeVar Source # 
Instance details

Defined in Test.IOTasks.Var

withSomeVar :: SomeVar -> (forall a. Typeable a => Var a -> r) -> r Source #

withSomeConsistentVars :: SomeConsistentVars -> (forall a. Typeable a => [Var a] -> r) -> r Source #

withConsistentList :: [SomeVar] -> (forall a. Typeable a => [Var a] -> r) -> Maybe r Source #

filterType :: forall a. Typeable a => [SomeVar] -> [Var a] Source #

class VarExp e where Source #

Abstraction over different types of variable-expressions.

A variable-expression references one or more specification variables and can be used to access the values assigned to these specific variables.

If an expression references more than one variable, the values of these variables are interleaved chronologically. I.e., currentValue will provide access to the current value of the last modified variable from the list and allValues gives a list where values appear in the order they were given to the program.

Additionally, all referenced variables must be of the same type.

Instances need to make sure that the resulting list is sorted!

Methods

toVarList :: e a -> [Var a] Source #

Computes the list of variables referenced by the variable expression.

Instances

Instances details
VarExp MergedVars Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: MergedVars a -> [Var a] Source #

VarExp Var Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: Var a -> [Var a] Source #

data MergedVars a Source #

Instances

Instances details
VarExp MergedVars Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

toVarList :: MergedVars a -> [Var a] Source #

Show (MergedVars a) Source # 
Instance details

Defined in Test.IOTasks.Var

Eq (MergedVars a) Source # 
Instance details

Defined in Test.IOTasks.Var

Methods

(==) :: MergedVars a -> MergedVars a -> Bool #

(/=) :: MergedVars a -> MergedVars a -> Bool #