Safe Haskell | Unsafe |
---|
This module is not Safe Haskell, but it must be used to create new LVar types.
Documentation
DeepFreezing is a type-level (guaranteed O(1) time complexity)
operation. It marks an LVar and its contents (recursively) as
frozen. DeepFreezing is not an action that can be taken directly
by the user, however. Rather, it is the final step in a
runParThenFreeze
invocation.
This type function is public. It maps pre-frozen types to frozen ones. It should be idempotent.
This exists only for the purpose of being a type which is not equal to Frzn
.
One could just as well have used ()
, but this is more descriptive.
An uninhabited type that signals that an LVar has been frozen.
LVars should use this in place of their s
parameter.
Foldable (IStructure Frzn) | |
Foldable (ISet Frzn) | |
Foldable (ISet Frzn) | |
Show a => Show (IVar Frzn a) | |
Show a => Show (IStructure Frzn a) | |
Show a => Show (ISet Frzn a) | |
Show a => Show (ISet Frzn a) | |
Show a => Show (PureLVar Frzn a) | |
Foldable (IMap k Frzn) | |
Foldable (IMap k Frzn) | |
(Show k, Show a) => Show (IMap k Frzn a) | |
(Show k, Show a) => Show (IMap k Frzn a) |
An uninhabited type that signals that an LVar is not only frozen, but it may be traversed in whatever order its internal representation dictates.
Foldable (IVar Trvrsbl) | |
Foldable (IStructure Trvrsbl) | |
Foldable (ISet Trvrsbl) | |
Foldable (ISet Trvrsbl) | |
Show a => Show (IVar Trvrsbl a) | For convenience only; the user could define this. |
Show a => Show (IStructure Trvrsbl a) | For convenience only; the user could define this. |
Show a => Show (ISet Trvrsbl a) | For convenience; the user could define this. |
Show a => Show (ISet Trvrsbl a) | For convenience only; the user could define this. |
Foldable (IMap k Trvrsbl) | |
Foldable (IMap k Trvrsbl) | |
(Show k, Show a) => Show (IMap k Trvrsbl a) | For convenience only; the user could define this. |
(Show k, Show a) => Show (IMap k Trvrsbl a) | For convenience only; the user could define this. |