grisette-0.9.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2024
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellSafe-Inferred
LanguageHaskell2010

Grisette.Unified.Internal.UnifiedData

Description

 
Synopsis

Documentation

type family GetData mode v = r | r -> mode v Source #

Get a unified data type. Resolves to v in Con mode, and Union v in Sym mode.

Instances

Instances details
type GetData 'Con v Source # 
Instance details

Defined in Grisette.Unified.Internal.UnifiedData

type GetData 'Con v = Identity v
type GetData 'Sym v Source # 
Instance details

Defined in Grisette.Unified.Internal.UnifiedData

type GetData 'Sym v = Union v

wrapData :: UnifiedDataImpl mode v u => v -> u Source #

Wraps a value into the unified data type.

extractData :: (UnifiedDataImpl mode v u, 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 v Source #

This class is needed as constraint in user code prior to GHC 9.2.1. See the notes in IsMode.

Instances

Instances details
UnifiedDataImpl bool v (GetData bool v) => UnifiedData bool v Source # 
Instance details

Defined in Grisette.Unified.Internal.UnifiedData

class (forall v. Mergeable v => UnifiedData bool v, forall v. Mergeable v => UnifiedDataSimpleMergeable v) => AllUnifiedData bool Source #

Evaluation mode with unified data types.

Instances

Instances details
(forall v. Mergeable v => UnifiedData bool v, forall v. Mergeable v => UnifiedDataSimpleMergeable v) => AllUnifiedData bool Source # 
Instance details

Defined in Grisette.Unified.Internal.UnifiedData