Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data OpenWitness :: * -> forall k. k -> *
- data RealWorld
- type IOWitness = OpenWitness RealWorld
- newIOWitness :: forall a. IO (IOWitness a)
- data OW s a
- newOpenWitnessOW :: forall s a. OW s (OpenWitness s a)
- runOW :: forall a. (forall s. OW s a) -> a
- owToIO :: OW RealWorld a -> IO a
- iowitness :: TypeQ -> Q Exp
Documentation
data OpenWitness :: * -> forall k. k -> * Source #
A witness type that can witness to any type.
But values cannot be constructed; they can only be generated in IO
and certain other monads.
TestEquality k (OpenWitness s k) Source # | |
TestHetEquality (OpenWitness s) Source # | |
Eq (OpenWitness s k a) Source # | |
type IOWitness = OpenWitness RealWorld Source #
An OpenWitness
for IO
.
A runnable monad in which OpenWitness
values can be generated.
The s
parameter plays the same role as it does in ST
, preventing OpenWitness
values from one run being used in another.
newOpenWitnessOW :: forall s a. OW s (OpenWitness s a) Source #
Generate a new OpenWitness
in OW
.