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

Grisette.Internal.Core.Data.Class.ExtractSym

Description

 
Synopsis

Extracting symbolic constant set from a value

class ExtractSym a where Source #

Extracts all the symbols (symbolic constants) that are transitively contained in the given value.

>>> extractSym ("a" :: SymBool) :: SymbolSet
SymbolSet {a :: Bool}
>>> extractSym (mrgIf "a" (mrgReturn ["b"]) (mrgReturn ["c", "d"]) :: Union [SymBool]) :: SymbolSet
SymbolSet {a :: Bool, b :: Bool, c :: Bool, d :: Bool}

Note 1: This type class can be derived for algebraic data types. You may need the DerivingVia and DerivingStrategies extensions.

data X = ... deriving Generic deriving ExtractSym via (Default X)

Methods

extractSym :: a -> SymbolSet Source #

Instances

Instances details
ExtractSym All Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Any Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Int16 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Int32 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Int64 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Int8 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Word16 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Word32 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Word64 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Word8 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym ByteString Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Ordering Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym AssertionError Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym VerificationConditions Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym FPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Text Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Integer Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym () Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: () -> SymbolSet Source #

ExtractSym Bool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Char Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Double Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Float Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Int Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym Word Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Identity a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (First a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Last a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Down a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Dual a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Product a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Sum a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym p => ExtractSym (Par1 p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(Generic a, GExtractSym Arity0 (Rep a)) => ExtractSym (Default a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Union a) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.Union

(KnownNat n, 1 <= n) => ExtractSym (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(KnownNat n, 1 <= n) => ExtractSym (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(forall (n :: Nat). (KnownNat n, 1 <= n) => ExtractSym (bv n)) => ExtractSym (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

(KnownNat n, 1 <= n) => ExtractSym (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(KnownNat n, 1 <= n) => ExtractSym (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym (Maybe a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym a => ExtractSym [a] Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: [a] -> SymbolSet Source #

(ExtractSym a, ExtractSym b) => ExtractSym (Either a b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym (U1 p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: U1 p -> SymbolSet Source #

ExtractSym (V1 p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: V1 p -> SymbolSet Source #

(Generic1 f, GExtractSym Arity1 (Rep1 f), ExtractSym a) => ExtractSym (Default1 f a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(ExtractSym a, ExtractSym b) => ExtractSym (CBMCEither a b) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept

ValidFP eb sb => ExtractSym (FP eb sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: FP eb sb -> SymbolSet Source #

ValidFP eb fb => ExtractSym (SymFP eb fb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: SymFP eb fb -> SymbolSet Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ExtractSym (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (sa -~> sb) -> SymbolSet Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ExtractSym (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (sa =~> sb) -> SymbolSet Source #

(ExtractSym1 m, ExtractSym a) => ExtractSym (MaybeT m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(ExtractSym a, ExtractSym b) => ExtractSym (a, b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b) -> SymbolSet Source #

ExtractSym a => ExtractSym (Const a b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Const a b -> SymbolSet Source #

ExtractSym (f a) => ExtractSym (Ap f a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Ap f a -> SymbolSet Source #

ExtractSym (f a) => ExtractSym (Alt f a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Alt f a -> SymbolSet Source #

ExtractSym (f p) => ExtractSym (Rec1 f p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Rec1 f p -> SymbolSet Source #

ExtractSym (m (CBMCEither e a)) => ExtractSym (CBMCExceptT e m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept

(ExtractSym1 m, ExtractSym e, ExtractSym a) => ExtractSym (ExceptT e m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: ExceptT e m a -> SymbolSet Source #

(ExtractSym1 m, ExtractSym a) => ExtractSym (IdentityT m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(ExtractSym1 m, ExtractSym w, ExtractSym a) => ExtractSym (WriterT w m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: WriterT w m a -> SymbolSet Source #

(ExtractSym1 m, ExtractSym w, ExtractSym a) => ExtractSym (WriterT w m a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: WriterT w m a -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c) => ExtractSym (a, b, c) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c) -> SymbolSet Source #

(ExtractSym (l a), ExtractSym (r a)) => ExtractSym (Product l r a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Product l r a -> SymbolSet Source #

(ExtractSym (l a), ExtractSym (r a)) => ExtractSym (Sum l r a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Sum l r a -> SymbolSet Source #

(ExtractSym (f p), ExtractSym (g p)) => ExtractSym ((f :*: g) p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (f :*: g) p -> SymbolSet Source #

(ExtractSym (f p), ExtractSym (g p)) => ExtractSym ((f :+: g) p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (f :+: g) p -> SymbolSet Source #

ExtractSym c => ExtractSym (K1 i c p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: K1 i c p -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d) => ExtractSym (a, b, c, d) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d) -> SymbolSet Source #

ExtractSym (f (g a)) => ExtractSym (Compose f g a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: Compose f g a -> SymbolSet Source #

ExtractSym (f (g p)) => ExtractSym ((f :.: g) p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (f :.: g) p -> SymbolSet Source #

ExtractSym (f p) => ExtractSym (M1 i c f p) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: M1 i c f p -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e) => ExtractSym (a, b, c, d, e) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f) => ExtractSym (a, b, c, d, e, f) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g) => ExtractSym (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h) => ExtractSym (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i) => ExtractSym (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j) => ExtractSym (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k) => ExtractSym (a, b, c, d, e, f, g, h, i, j, k) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j, k) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l) => ExtractSym (a, b, c, d, e, f, g, h, i, j, k, l) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j, k, l) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l, ExtractSym m) => ExtractSym (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l, ExtractSym m, ExtractSym n) => ExtractSym (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l, ExtractSym m, ExtractSym n, ExtractSym o) => ExtractSym (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

extractSym :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> SymbolSet Source #

class (forall a. ExtractSym a => ExtractSym (f a)) => ExtractSym1 f where Source #

Lifting of ExtractSym to unary type constructors.

Methods

liftExtractSym :: (a -> SymbolSet) -> f a -> SymbolSet Source #

Lifts the extractSym function to unary type constructors.

Instances

Instances details
ExtractSym1 Identity Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym1 First Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> First a -> SymbolSet Source #

ExtractSym1 Last Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Last a -> SymbolSet Source #

ExtractSym1 Down Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Down a -> SymbolSet Source #

ExtractSym1 Dual Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Dual a -> SymbolSet Source #

ExtractSym1 Product Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

ExtractSym1 Sum Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Sum a -> SymbolSet Source #

ExtractSym1 Union Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.Union

Methods

liftExtractSym :: (a -> SymbolSet) -> Union a -> SymbolSet Source #

ExtractSym1 Maybe Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Maybe a -> SymbolSet Source #

ExtractSym1 List Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> [a] -> SymbolSet Source #

ExtractSym a => ExtractSym1 (Either a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> Either a a0 -> SymbolSet Source #

(Generic1 f, GExtractSym Arity1 (Rep1 f)) => ExtractSym1 (Default1 f) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Default1 f a -> SymbolSet Source #

ExtractSym1 m => ExtractSym1 (MaybeT m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> MaybeT m a -> SymbolSet Source #

ExtractSym a => ExtractSym1 ((,) a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, a0) -> SymbolSet Source #

ExtractSym a => ExtractSym1 (Const a :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> Const a a0 -> SymbolSet Source #

ExtractSym1 f => ExtractSym1 (Ap f) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Ap f a -> SymbolSet Source #

ExtractSym1 f => ExtractSym1 (Alt f) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Alt f a -> SymbolSet Source #

(ExtractSym1 m, ExtractSym e) => ExtractSym1 (ExceptT e m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> ExceptT e m a -> SymbolSet Source #

ExtractSym1 m => ExtractSym1 (IdentityT m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> IdentityT m a -> SymbolSet Source #

(ExtractSym1 m, ExtractSym w) => ExtractSym1 (WriterT w m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> WriterT w m a -> SymbolSet Source #

(ExtractSym1 m, ExtractSym w) => ExtractSym1 (WriterT w m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> WriterT w m a -> SymbolSet Source #

(ExtractSym a, ExtractSym b) => ExtractSym1 ((,,) a b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, a0) -> SymbolSet Source #

(ExtractSym1 l, ExtractSym1 r) => ExtractSym1 (Product l r) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Product l r a -> SymbolSet Source #

(ExtractSym1 l, ExtractSym1 r) => ExtractSym1 (Sum l r) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Sum l r a -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c) => ExtractSym1 ((,,,) a b c) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, a0) -> SymbolSet Source #

(ExtractSym1 f, ExtractSym1 g) => ExtractSym1 (Compose f g) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a -> SymbolSet) -> Compose f g a -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d) => ExtractSym1 ((,,,,) a b c d) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e) => ExtractSym1 ((,,,,,) a b c d e) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f) => ExtractSym1 ((,,,,,,) a b c d e f) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g) => ExtractSym1 ((,,,,,,,) a b c d e f g) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h) => ExtractSym1 ((,,,,,,,,) a b c d e f g h) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i) => ExtractSym1 ((,,,,,,,,,) a b c d e f g h i) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j) => ExtractSym1 ((,,,,,,,,,,) a b c d e f g h i j) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, j, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k) => ExtractSym1 ((,,,,,,,,,,,) a b c d e f g h i j k) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, j, k, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l) => ExtractSym1 ((,,,,,,,,,,,,) a b c d e f g h i j k l) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, j, k, l, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l, ExtractSym m) => ExtractSym1 ((,,,,,,,,,,,,,) a b c d e f g h i j k l m) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) -> SymbolSet Source #

(ExtractSym a, ExtractSym b, ExtractSym c, ExtractSym d, ExtractSym e, ExtractSym f, ExtractSym g, ExtractSym h, ExtractSym i, ExtractSym j, ExtractSym k, ExtractSym l, ExtractSym m, ExtractSym n) => ExtractSym1 ((,,,,,,,,,,,,,,) a b c d e f g h i j k l m n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym :: (a0 -> SymbolSet) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) -> SymbolSet Source #

extractSym1 :: (ExtractSym1 f, ExtractSym a) => f a -> SymbolSet Source #

Lift the standard extractSym to unary type constructors.

class (forall a. ExtractSym a => ExtractSym1 (f a)) => ExtractSym2 f where Source #

Lifting of ExtractSym to binary type constructors.

Methods

liftExtractSym2 :: (a -> SymbolSet) -> (b -> SymbolSet) -> f a b -> SymbolSet Source #

Lifts the extractSym function to binary type constructors.

Instances

Instances details
ExtractSym2 Either Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym2 :: (a -> SymbolSet) -> (b -> SymbolSet) -> Either a b -> SymbolSet Source #

ExtractSym2 (,) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym2 :: (a -> SymbolSet) -> (b -> SymbolSet) -> (a, b) -> SymbolSet Source #

ExtractSym a => ExtractSym2 ((,,) a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym2 :: (a0 -> SymbolSet) -> (b -> SymbolSet) -> (a, a0, b) -> SymbolSet Source #

(ExtractSym a, ExtractSym b) => ExtractSym2 ((,,,) a b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

liftExtractSym2 :: (a0 -> SymbolSet) -> (b0 -> SymbolSet) -> (a, b, a0, b0) -> SymbolSet Source #

extractSym2 :: (ExtractSym2 f, ExtractSym a, ExtractSym b) => f a b -> SymbolSet Source #

Lift the standard extractSym to binary type constructors.

Generic ExtractSym

data family ExtractSymArgs arity a :: Type Source #

The arguments to the generic extractSym function.

class GExtractSym arity f where Source #

The class of types that can generically extract the symbols.

Methods

gextractSym :: ExtractSymArgs arity a -> f a -> SymbolSet Source #

Instances

Instances details
GExtractSym Arity1 Par1 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

GExtractSym arity (U1 :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a -> U1 a -> SymbolSet Source #

GExtractSym arity (V1 :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a -> V1 a -> SymbolSet Source #

ExtractSym1 a => GExtractSym Arity1 (Rec1 a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

(GExtractSym arity a, GExtractSym arity b) => GExtractSym arity (a :*: b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a0 -> (a :*: b) a0 -> SymbolSet Source #

(GExtractSym arity a, GExtractSym arity b) => GExtractSym arity (a :+: b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a0 -> (a :+: b) a0 -> SymbolSet Source #

ExtractSym a => GExtractSym arity (K1 i a :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a0 -> K1 i a a0 -> SymbolSet Source #

(ExtractSym1 f, GExtractSym Arity1 g) => GExtractSym Arity1 (f :.: g) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

GExtractSym arity a => GExtractSym arity (M1 i c a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSym

Methods

gextractSym :: ExtractSymArgs arity a0 -> M1 i c a a0 -> SymbolSet Source #