Copyright | (c) Sirui Lu 2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Internal.Unified.UnifiedData
Description
Synopsis
- type family GetData (mode :: EvalModeTag) v = (r :: Type) | r -> mode v
- wrapData :: UnifiedDataImpl mode v u => v -> u
- extractData :: (UnifiedDataImpl mode v u, Mergeable v, Monad m, UnifiedBranching mode m) => u -> m v
- class UnifiedDataImpl mode v (GetData mode v) => UnifiedData (mode :: EvalModeTag) v
- class (forall v. UnifiedData bool v, forall v. Mergeable v => UnifiedDataSimpleMergeable v) => AllUnifiedData (bool :: EvalModeTag)
Documentation
type family GetData (mode :: EvalModeTag) v = (r :: Type) | r -> mode v Source #
extractData :: (UnifiedDataImpl mode v u, Mergeable v, Monad m, UnifiedBranching mode m) => u -> m v Source #
Extracts a value from the unified data type.
class UnifiedDataImpl mode v (GetData mode v) => UnifiedData (mode :: EvalModeTag) v Source #
This class is needed as constraint in user code prior to GHC 9.2.1.
See the notes in IsMode
.
Instances
UnifiedDataImpl bool v (GetData bool v) => UnifiedData bool v Source # | |
Defined in Grisette.Internal.Unified.UnifiedData |
class (forall v. UnifiedData bool v, forall v. Mergeable v => UnifiedDataSimpleMergeable v) => AllUnifiedData (bool :: EvalModeTag) Source #
Evaluation mode with unified data types.
Instances
(forall v. UnifiedData bool v, forall v. Mergeable v => UnifiedDataSimpleMergeable v) => AllUnifiedData bool Source # | |
Defined in Grisette.Internal.Unified.UnifiedData |