| Copyright | (C) 2017 Jacob Stanley |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Stevan Andjelkovic <stevan@advancedtelematic.com> |
| Stability | provisional |
| Portability | non-portable (GHC extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
Test.StateMachine.Internal.Types.Environment
Description
This module contains environments that are used to translate between symbolic and concrete references. It's taken verbatim from the Hedgehog library.
- newtype Environment = Environment {}
- data EnvironmentError
- emptyEnvironment :: Environment
- insertConcrete :: Symbolic a -> Concrete a -> Environment -> Environment
- reifyDynamic :: forall a. Typeable a => Dynamic -> Either EnvironmentError (Concrete a)
- reifyEnvironment :: Environment -> forall a. Symbolic a -> Either EnvironmentError (Concrete a)
- reify :: HTraversable t => Environment -> t Symbolic b -> Either EnvironmentError (t Concrete b)
Documentation
newtype Environment Source #
A mapping of symbolic values to concrete values.
Constructors
| Environment | |
Fields | |
Instances
data EnvironmentError Source #
Environment errors.
Constructors
| EnvironmentValueNotFound !Var | |
| EnvironmentTypeError !TypeRep !TypeRep |
Instances
emptyEnvironment :: Environment Source #
Create an empty environment.
insertConcrete :: Symbolic a -> Concrete a -> Environment -> Environment Source #
Insert a symbolic / concrete pairing in to the environment.
reifyDynamic :: forall a. Typeable a => Dynamic -> Either EnvironmentError (Concrete a) Source #
Cast a Dynamic in to a concrete value.
reifyEnvironment :: Environment -> forall a. Symbolic a -> Either EnvironmentError (Concrete a) Source #
Turns an environment in to a function for looking up a concrete value from a symbolic one.
reify :: HTraversable t => Environment -> t Symbolic b -> Either EnvironmentError (t Concrete b) Source #
Convert a symbolic structure to a concrete one, using the provided environment.