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.SubstSym

Description

 
Synopsis

Substituting symbolic constants

class SubstSym a where Source #

Substitution of symbols (symbolic constants) to a symbolic value.

>>> a = "a" :: TypedSymbol Bool
>>> v = "x" .&& "y" :: SymBool
>>> substSym a v (["a" .&& "b", "a"] :: [SymBool])
[(&& (&& x y) b),(&& x y)]

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 SubstSym via (Default X)

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> a -> a Source #

Instances

Instances details
SubstSym All Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> All -> All Source #

SubstSym Any Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Any -> Any Source #

SubstSym Int16 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Int16 -> Int16 Source #

SubstSym Int32 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Int32 -> Int32 Source #

SubstSym Int64 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Int64 -> Int64 Source #

SubstSym Int8 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Int8 -> Int8 Source #

SubstSym Word16 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Word16 -> Word16 Source #

SubstSym Word32 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Word32 -> Word32 Source #

SubstSym Word64 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Word64 -> Word64 Source #

SubstSym Word8 Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Word8 -> Word8 Source #

SubstSym ByteString Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> ByteString -> ByteString Source #

SubstSym Ordering Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Ordering -> Ordering Source #

SubstSym AssertionError Source # 
Instance details

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

SubstSym VerificationConditions Source # 
Instance details

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

SubstSym FPRoundingMode Source # 
Instance details

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

SubstSym SymBool Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymBool -> SymBool Source #

SubstSym SymFPRoundingMode Source # 
Instance details

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

SubstSym SymInteger Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymInteger -> SymInteger Source #

SubstSym Text Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Text -> Text Source #

SubstSym Integer Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Integer -> Integer Source #

SubstSym () Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> () -> () Source #

SubstSym Bool Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Bool -> Bool Source #

SubstSym Char Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Char -> Char Source #

SubstSym Double Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Double -> Double Source #

SubstSym Float Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Float -> Float Source #

SubstSym Int Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Int -> Int Source #

SubstSym Word Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Word -> Word Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Identity a -> Identity a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> First a -> First a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Last a -> Last a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Down a -> Down a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Dual a -> Dual a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Product a -> Product a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Sum a -> Sum a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Par1 p -> Par1 p Source #

(Generic a, GSubstSym Arity0 (Rep a)) => SubstSym (Default a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Default a -> Default a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Union a -> Union a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> IntN n -> IntN n Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> WordN n -> WordN n Source #

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

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SomeBV bv -> SomeBV bv Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymIntN n -> SymIntN n Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymWordN n -> SymWordN n Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Maybe a -> Maybe a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> [a] -> [a] Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Either a b -> Either a b Source #

SubstSym (U1 p) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> U1 p -> U1 p Source #

SubstSym (V1 p) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> V1 p -> V1 p Source #

(Generic1 f, GSubstSym Arity1 (Rep1 f), SubstSym a) => SubstSym (Default1 f a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Default1 f a -> Default1 f a Source #

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

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

Methods

substSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> FP eb sb -> FP eb sb Source #

ValidFP eb sb => SubstSym (SymFP eb sb) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> SymFP eb sb -> SymFP eb sb Source #

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

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

Methods

substSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> (sa -~> sb) -> sa -~> sb Source #

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

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

Methods

substSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> (sa =~> sb) -> sa =~> sb Source #

(SubstSym1 m, SubstSym a) => SubstSym (MaybeT m a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> MaybeT m a -> MaybeT m a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b) -> (a, b) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Const a b -> Const a b Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Ap f a -> Ap f a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Alt f a -> Alt f a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Rec1 f p -> Rec1 f p Source #

(SubstSym1 m, SubstSym e, SubstSym a) => SubstSym (ExceptT e m a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> ExceptT e m a -> ExceptT e m a Source #

(SubstSym1 m, SubstSym a) => SubstSym (IdentityT m a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> IdentityT m a -> IdentityT m a Source #

(SubstSym1 m, SubstSym a, SubstSym s) => SubstSym (WriterT s m a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> WriterT s m a -> WriterT s m a Source #

(SubstSym1 m, SubstSym a, SubstSym s) => SubstSym (WriterT s m a) Source # 
Instance details

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> WriterT s m a -> WriterT s m a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c) -> (a, b, c) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Product l r a -> Product l r a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Sum l r a -> Sum l r a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (f :*: g) p -> (f :*: g) p Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (f :+: g) p -> (f :+: g) p Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> K1 i c p -> K1 i c p Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d) -> (a, b, c, d) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> Compose f g a -> Compose f g a Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (f :.: g) p -> (f :.: g) p Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> M1 i c f p -> M1 i c f p Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e) -> (a, b, c, d, e) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f) -> (a, b, c, d, e, f) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i) -> (a, b, c, d, e, f, g, h, i) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j) -> (a, b, c, d, e, f, g, h, i, j) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k) -> (a, b, c, d, e, f, g, h, i, j, k) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l) -> (a, b, c, d, e, f, g, h, i, j, k, l) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, m) -> (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #

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

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

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #

(SubstSym a, SubstSym b, SubstSym c, SubstSym d, SubstSym e, SubstSym f, SubstSym g, SubstSym h, SubstSym i, SubstSym j, SubstSym k, SubstSym l, SubstSym m, SubstSym n, SubstSym o) => SubstSym (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.SubstSym

Methods

substSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #

class (forall a. SubstSym a => SubstSym (f a)) => SubstSym1 f where Source #

Lifting of SubstSym to unary type constructors.

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> f a -> f a Source #

Lift a symbol substitution function to unary type constructors.

Instances

Instances details
SubstSym1 Identity Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Identity a -> Identity a Source #

SubstSym1 First Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> First a -> First a Source #

SubstSym1 Last Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Last a -> Last a Source #

SubstSym1 Down Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Down a -> Down a Source #

SubstSym1 Dual Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Dual a -> Dual a Source #

SubstSym1 Product Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Product a -> Product a Source #

SubstSym1 Sum Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Sum a -> Sum a Source #

SubstSym1 Union Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Union a -> Union a Source #

SubstSym1 Maybe Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Maybe a -> Maybe a Source #

SubstSym1 List Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> [a] -> [a] Source #

SubstSym a => SubstSym1 (Either a) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> Either a a0 -> Either a a0 Source #

(Generic1 f, GSubstSym Arity1 (Rep1 f)) => SubstSym1 (Default1 f) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Default1 f a -> Default1 f a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> MaybeT m a -> MaybeT m a Source #

SubstSym a => SubstSym1 ((,) a) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, a0) -> (a, a0) Source #

SubstSym a => SubstSym1 (Const a :: Type -> Type) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> Const a a0 -> Const a a0 Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Ap f a -> Ap f a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Alt f a -> Alt f a Source #

(SubstSym1 m, SubstSym e) => SubstSym1 (ExceptT e m) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> ExceptT e m a -> ExceptT e m a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> IdentityT m a -> IdentityT m a Source #

(SubstSym1 m, SubstSym s) => SubstSym1 (WriterT s m) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> WriterT s m a -> WriterT s m a Source #

(SubstSym1 m, SubstSym s) => SubstSym1 (WriterT s m) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> WriterT s m a -> WriterT s m a Source #

(SubstSym a, SubstSym b) => SubstSym1 ((,,) a b) Source # 
Instance details

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, a0) -> (a, b, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Product l r a -> Product l r a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Sum l r a -> Sum l r a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, a0) -> (a, b, c, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> Compose f g a -> Compose f g a Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, a0) -> (a, b, c, d, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, a0) -> (a, b, c, d, e, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, a0) -> (a, b, c, d, e, f, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, a0) -> (a, b, c, d, e, f, g, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, a0) -> (a, b, c, d, e, f, g, h, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, a0) -> (a, b, c, d, e, f, g, h, i, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, a0) -> (a, b, c, d, e, f, g, h, i, j, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, a0) -> (a, b, c, d, e, f, g, h, i, j, k, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, a0) -> (a, b, c, d, e, f, g, h, i, j, k, l, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, a0) Source #

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

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

Methods

liftSubstSym :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> TypedSymbol cb -> sb -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, a0) Source #

substSym1 :: (SubstSym1 f, SubstSym a, LinkedRep cb sb) => TypedSymbol cb -> sb -> f a -> f a Source #

Lifting the standard substSym to unary type constructors.

class (forall a. SubstSym a => SubstSym1 (f a)) => SubstSym2 f where Source #

Lifting of SubstSym to binary type constructors.

Methods

liftSubstSym2 :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> (TypedSymbol cb -> sb -> b -> b) -> TypedSymbol cb -> sb -> f a b -> f a b Source #

Lift a symbol substitution function to binary type constructors.

Instances

Instances details
SubstSym2 Either Source # 
Instance details

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

Methods

liftSubstSym2 :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> (TypedSymbol cb -> sb -> b -> b) -> TypedSymbol cb -> sb -> Either a b -> Either a b Source #

SubstSym2 (,) Source # 
Instance details

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

Methods

liftSubstSym2 :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a -> a) -> (TypedSymbol cb -> sb -> b -> b) -> TypedSymbol cb -> sb -> (a, b) -> (a, b) Source #

SubstSym a => SubstSym2 ((,,) a) Source # 
Instance details

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

Methods

liftSubstSym2 :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> (TypedSymbol cb -> sb -> b -> b) -> TypedSymbol cb -> sb -> (a, a0, b) -> (a, a0, b) Source #

(SubstSym a, SubstSym b) => SubstSym2 ((,,,) a b) Source # 
Instance details

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

Methods

liftSubstSym2 :: LinkedRep cb sb => (TypedSymbol cb -> sb -> a0 -> a0) -> (TypedSymbol cb -> sb -> b0 -> b0) -> TypedSymbol cb -> sb -> (a, b, a0, b0) -> (a, b, a0, b0) Source #

substSym2 :: (SubstSym2 f, SubstSym a, SubstSym b, LinkedRep cb sb) => TypedSymbol cb -> sb -> f a b -> f a b Source #

Lifting the standard substSym to binary type constructors.

Generic SubstSym

data family SubstSymArgs arity a cb sb :: Type Source #

The arguments to the generic substSym function.

Instances

Instances details
data SubstSymArgs Arity0 _ _1 _2 Source # 
Instance details

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

newtype SubstSymArgs Arity1 a cb sb Source # 
Instance details

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

newtype SubstSymArgs Arity1 a cb sb = SubstSymArgs1 (TypedSymbol cb -> sb -> a -> a)

class GSubstSym arity f where Source #

The class of types where we can generically substitute the symbols in a value.

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a cb sb -> TypedSymbol cb -> sb -> f a -> f a Source #

Instances

Instances details
GSubstSym Arity1 Par1 Source # 
Instance details

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs Arity1 a cb sb -> TypedSymbol cb -> sb -> Par1 a -> Par1 a Source #

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

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a cb sb -> TypedSymbol cb -> sb -> U1 a -> U1 a Source #

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

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a cb sb -> TypedSymbol cb -> sb -> V1 a -> V1 a Source #

SubstSym1 a => GSubstSym Arity1 (Rec1 a) Source # 
Instance details

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs Arity1 a0 cb sb -> TypedSymbol cb -> sb -> Rec1 a a0 -> Rec1 a a0 Source #

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

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a0 cb sb -> TypedSymbol cb -> sb -> (a :*: b) a0 -> (a :*: b) a0 Source #

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

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a0 cb sb -> TypedSymbol cb -> sb -> (a :+: b) a0 -> (a :+: b) a0 Source #

SubstSym a => GSubstSym arity (K1 i a :: Type -> Type) Source # 
Instance details

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a0 cb sb -> TypedSymbol cb -> sb -> K1 i a a0 -> K1 i a a0 Source #

(SubstSym1 f, GSubstSym Arity1 g) => GSubstSym Arity1 (f :.: g) Source # 
Instance details

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs Arity1 a cb sb -> TypedSymbol cb -> sb -> (f :.: g) a -> (f :.: g) a Source #

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

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

Methods

gsubstSym :: LinkedRep cb sb => SubstSymArgs arity a0 cb sb -> TypedSymbol cb -> sb -> M1 i c a a0 -> M1 i c a a0 Source #

genericSubstSym :: (Generic a, GSubstSym Arity0 (Rep a), LinkedRep cb sb) => TypedSymbol cb -> sb -> a -> a Source #

Generic substSym function.

genericLiftSubstSym :: (Generic1 f, GSubstSym Arity1 (Rep1 f), LinkedRep cb sb) => (TypedSymbol cb -> sb -> a -> a) -> TypedSymbol cb -> sb -> f a -> f a Source #

Generic liftSubstSym function.