Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Grisette.Internal.Core.Data.Class.ToSym
Description
Synopsis
- class ToSym a b where
- toSym :: a -> b
- class (forall a b. ToSym a b => ToSym (f1 a) (f2 b)) => ToSym1 (f1 :: Type -> Type) (f2 :: Type -> Type) where
- liftToSym :: (a -> b) -> f1 a -> f2 b
- toSym1 :: (ToSym1 f1 f2, ToSym a b) => f1 a -> f2 b
- class (forall a b. ToSym a b => ToSym1 (f1 a) (f2 b)) => ToSym2 (f1 :: Type -> Type -> Type) (f2 :: Type -> Type -> Type) where
- liftToSym2 :: (a -> b) -> (c -> d) -> f1 a c -> f2 b d
- toSym2 :: (ToSym2 f1 f2, ToSym a b, ToSym c d) => f1 a c -> f2 b d
- data family ToSymArgs arity a b
- class GToSym arity (f1 :: Type -> Type) (f2 :: Type -> Type) where
- genericToSym :: (Generic a, Generic b, GToSym Arity0 (Rep a) (Rep b)) => a -> b
- genericLiftToSym :: (Generic1 f1, Generic1 f2, GToSym Arity1 (Rep1 f1) (Rep1 f2)) => (a -> b) -> f1 a -> f2 b
Converting to symbolic values
class ToSym a b where Source #
Convert a concrete value to symbolic value.
Methods
Convert a concrete value to symbolic value.
>>>
toSym False :: SymBool
false
>>>
toSym [False, True] :: [SymBool]
[false,true]
Instances
ToSym ByteString ByteString Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: ByteString -> ByteString Source # | |
ToSym All All Source # | |
ToSym Any Any Source # | |
ToSym Int16 Int16 Source # | |
ToSym Int32 Int32 Source # | |
ToSym Int64 Int64 Source # | |
ToSym Int8 Int8 Source # | |
ToSym Rational SymAlgReal Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: Rational -> SymAlgReal Source # | |
ToSym Word16 Word16 Source # | |
ToSym Word32 Word32 Source # | |
ToSym Word64 Word64 Source # | |
ToSym Word8 Word8 Source # | |
ToSym Ordering Ordering Source # | |
ToSym AssertionError AssertionError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: AssertionError -> AssertionError Source # | |
ToSym VerificationConditions VerificationConditions Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: VerificationConditions -> VerificationConditions Source # | |
ToSym AlgReal SymAlgReal Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: AlgReal -> SymAlgReal Source # | |
ToSym FPRoundingMode FPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: FPRoundingMode -> FPRoundingMode Source # | |
ToSym FPRoundingMode SymFPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |
ToSym NotRepresentableFPError NotRepresentableFPError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: NotRepresentableFPError -> NotRepresentableFPError Source # | |
ToSym SomeBVException SomeBVException Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods | |
ToSym SymAlgReal SymAlgReal Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: SymAlgReal -> SymAlgReal Source # | |
ToSym SymBool SymBool Source # | |
ToSym SymFPRoundingMode SymFPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |
ToSym SymInteger SymInteger Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: SymInteger -> SymInteger Source # | |
ToSym Text Text Source # | |
ToSym Integer SymInteger Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: Integer -> SymInteger Source # | |
ToSym Integer Integer Source # | |
ToSym () () Source # | |
ToSym Bool SymBool Source # | |
ToSym Bool Bool Source # | |
ToSym Char Char Source # | |
ToSym Double SymFP64 Source # | |
ToSym Double Double Source # | |
ToSym Float SymFP32 Source # | |
ToSym Float Float Source # | |
ToSym Int Int Source # | |
ToSym Word Word Source # | |
ToSym a a Source # | |
ToSym Int16 (SymIntN 16) Source # | |
ToSym Int32 (SymIntN 32) Source # | |
ToSym Int64 (SymIntN 64) Source # | |
ToSym Int8 (SymIntN 8) Source # | |
ToSym Word16 (SymWordN 16) Source # | |
ToSym Word32 (SymWordN 32) Source # | |
ToSym Word64 (SymWordN 64) Source # | |
ToSym Word8 (SymWordN 8) Source # | |
ToSym AssertionError (Union AssertionError) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |
ToSym VerificationConditions (Union VerificationConditions) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: VerificationConditions -> Union VerificationConditions Source # | |
ToSym NotRepresentableFPError (Union NotRepresentableFPError) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: NotRepresentableFPError -> Union NotRepresentableFPError Source # | |
ToSym () (Union ()) Source # | |
ToSym Int (SymIntN 64) Source # | |
ToSym Word (SymWordN 64) Source # | |
(Generic a, Generic b, GToSym Arity0 (Rep a) (Rep b)) => ToSym a (Default b) Source # | |
ToSym a b => ToSym a (Identity b) Source # | |
ToSym a b => ToSym (Identity a) b Source # | |
ToSym (Union Integer) SymInteger Source # | |
ToSym (Union Bool) SymBool Source # | |
ToSym a b => ToSym (Identity a) (Identity b) Source # | |
ToSym a b => ToSym (Identity a) (Union b) Source # | |
ToSym a1 a2 => ToSym (First a1) (First a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (First a2) (Union (First a1)) Source # | |
ToSym a1 a2 => ToSym (Last a1) (Last a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Last a2) (Union (Last a1)) Source # | |
ToSym a1 a2 => ToSym (Down a1) (Down a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Down a2) (Union (Down a1)) Source # | |
ToSym a1 a2 => ToSym (Dual a1) (Dual a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Dual a2) (Union (Dual a1)) Source # | |
ToSym a1 a2 => ToSym (Product a1) (Product a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Product a2) (Union (Product a1)) Source # | |
ToSym a1 a2 => ToSym (Sum a1) (Sum a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Sum a2) (Union (Sum a1)) Source # | |
ToSym p0 p => ToSym (Par1 p0) (Par1 p) Source # | |
(Integral b, Typeable b, Show b, ToSym a b) => ToSym (Ratio a) (Ratio b) Source # | |
(KnownNat n, 1 <= n) => ToSym (Union (IntN n)) (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => ToSym (Union (WordN n)) (SymWordN n) Source # | |
ToSym a b => ToSym (Union a) (Union b) Source # | |
(KnownNat n, 1 <= n) => ToSym (IntN n) (IntN n) Source # | |
(KnownNat n, 1 <= n) => ToSym (IntN n) (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => ToSym (WordN n) (WordN n) Source # | |
(KnownNat n, 1 <= n) => ToSym (WordN n) (SymWordN n) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ToSym (cbv n) (sbv n)) => ToSym (SomeBV cbv) (SomeBV sbv) Source # | |
(KnownNat n, 1 <= n) => ToSym (SymIntN n) (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => ToSym (SymWordN n) (SymWordN n) Source # | |
ToSym a1 a2 => ToSym (Maybe a1) (Maybe a2) Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym (Maybe a2) (Union (Maybe a1)) Source # | |
ToSym a1 a2 => ToSym [a1] [a2] Source # | |
(Mergeable a1, ToSym a2 a1) => ToSym [a2] (Union [a1]) Source # | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca --> cb)) (sa -~> sb) Source # | |
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca =-> cb)) (sa =~> sb) Source # | |
(Generic1 f1, Generic1 f2, GToSym Arity1 (Rep1 f1) (Rep1 f2), ToSym a b) => ToSym (f1 a) (Default1 f2 b) Source # | |
(Mergeable a1, Mergeable a2, ToSym a3 a1, ToSym a4 a2) => ToSym (Either a3 a4) (Union (Either a1 a2)) Source # | |
(Mergeable1 a1, Mergeable a2, ToSym1 a3 a1, ToSym a4 a2) => ToSym (MaybeT a3 a4) (Union (MaybeT a1 a2)) Source # | |
(Mergeable a1, Mergeable a2, ToSym a3 a1, ToSym a4 a2) => ToSym (a3, a4) (Union (a1, a2)) Source # | |
(ToSym a1 a2, ToSym a3 a4) => ToSym (Either a1 a3) (Either a2 a4) Source # | |
(ToSym e1 e2, ToSym a1 a2) => ToSym (Either e1 a1) (CBMCEither e2 a2) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toSym :: Either e1 a1 -> CBMCEither e2 a2 Source # | |
ToSym (U1 p0) (U1 p) Source # | |
ToSym (V1 p0) (V1 p) Source # | |
(ToSym e1 e2, ToSym a1 a2) => ToSym (CBMCEither e1 a1) (Either e2 a2) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toSym :: CBMCEither e1 a1 -> Either e2 a2 Source # | |
(ToSym e1 e2, ToSym a1 a2) => ToSym (CBMCEither e1 a1) (CBMCEither e2 a2) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toSym :: CBMCEither e1 a1 -> CBMCEither e2 a2 Source # | |
ValidFP eb sb => ToSym (FP eb sb) (FP eb sb) Source # | |
ValidFP eb sb => ToSym (FP eb sb) (SymFP eb sb) Source # | |
ToSym (a --> b) (a --> b) Source # | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca --> cb) (sa -~> sb) Source # | |
ValidFP eb sb => ToSym (SymFP eb sb) (SymFP eb sb) Source # | |
(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (sa -~> sb) (sa -~> sb) Source # | |
(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (sa =~> sb) (sa =~> sb) Source # | |
ToSym (a =-> b) (a =-> b) Source # | |
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca =-> cb) (sa =~> sb) Source # | |
(ToSym1 a1 a2, ToSym a3 a4) => ToSym (MaybeT a1 a3) (MaybeT a2 a4) Source # | |
(ToSym a1 a2, ToSym a3 a4) => ToSym (a1, a3) (a2, a4) Source # | |
(ToSym b d, ToSym c a) => ToSym (a -> b) (c -> d) Source # | |
(Mergeable a1, Mergeable1 a2, Mergeable a3, ToSym a4 a1, ToSym1 a5 a2, ToSym a6 a3) => ToSym (ExceptT a4 a5 a6) (Union (ExceptT a1 a2 a3)) Source # | |
(Mergeable a1, Mergeable1 a2, Mergeable a3, ToSym a4 a1, ToSym1 a5 a2, ToSym a6 a3) => ToSym (WriterT a4 a5 a6) (Union (WriterT a1 a2 a3)) Source # | |
(Mergeable a1, Mergeable1 a2, Mergeable a3, ToSym a4 a1, ToSym1 a5 a2, ToSym a6 a3) => ToSym (WriterT a4 a5 a6) (Union (WriterT a1 a2 a3)) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, ToSym a4 a1, ToSym a5 a2, ToSym a6 a3) => ToSym (a4, a5, a6) (Union (a1, a2, a3)) Source # | |
ToSym a0 a => ToSym (Const a0 b0) (Const a b) Source # | |
ToSym (f0 a0) (f a) => ToSym (Ap f0 a0) (Ap f a) Source # | |
ToSym (f0 a0) (f a) => ToSym (Alt f0 a0) (Alt f a) Source # | |
ToSym (f0 p0) (f p) => ToSym (Rec1 f0 p0) (Rec1 f p) Source # | |
(ToSym e1 e2, ToSym a b, ToSym1 m1 m2) => ToSym (CBMCExceptT e1 m1 a) (CBMCExceptT e2 m2 b) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toSym :: CBMCExceptT e1 m1 a -> CBMCExceptT e2 m2 b Source # | |
(ToSym a1 a2, ToSym1 a3 a4, ToSym a5 a6) => ToSym (ExceptT a1 a3 a5) (ExceptT a2 a4 a6) Source # | |
(ToSym1 m m1, ToSym a b) => ToSym (IdentityT m a) (IdentityT m1 b) Source # | |
(ToSym s2 s1, ToSym1 m1 m2, ToSym a1 a2) => ToSym (ReaderT s1 m1 a1) (ReaderT s2 m2 a2) Source # | |
(ToSym1 m1 m2, ToSym a1 a2) => ToSym (StateT s m1 a1) (StateT s m2 a2) Source # | |
(ToSym1 m1 m2, ToSym a1 a2) => ToSym (StateT s m1 a1) (StateT s m2 a2) Source # | |
(ToSym a1 a2, ToSym1 a3 a4, ToSym a5 a6) => ToSym (WriterT a1 a3 a5) (WriterT a2 a4 a6) Source # | |
(ToSym a1 a2, ToSym1 a3 a4, ToSym a5 a6) => ToSym (WriterT a1 a3 a5) (WriterT a2 a4 a6) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6) => ToSym (a1, a3, a5) (a2, a4, a6) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, ToSym a5 a1, ToSym a6 a2, ToSym a7 a3, ToSym a8 a4) => ToSym (a5, a6, a7, a8) (Union (a1, a2, a3, a4)) Source # | |
(ToSym (l0 a0) (l a), ToSym (r0 a0) (r a)) => ToSym (Product l0 r0 a0) (Product l r a) Source # | |
(ToSym (l0 a0) (l a), ToSym (r0 a0) (r a)) => ToSym (Sum l0 r0 a0) (Sum l r a) Source # | |
(ToSym (f0 p0) (f p), ToSym (g0 p0) (g p)) => ToSym ((f0 :*: g0) p0) ((f :*: g) p) Source # | |
(ToSym (f0 p0) (f p), ToSym (g0 p0) (g p)) => ToSym ((f0 :+: g0) p0) ((f :+: g) p) Source # | |
ToSym c0 c => ToSym (K1 i0 c0 p0) (K1 i c p) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8) => ToSym (a1, a3, a5, a7) (a2, a4, a6, a8) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, ToSym a6 a1, ToSym a7 a2, ToSym a8 a3, ToSym a9 a4, ToSym a10 a5) => ToSym (a6, a7, a8, a9, a10) (Union (a1, a2, a3, a4, a5)) Source # | |
ToSym (f0 (g0 a0)) (f (g a)) => ToSym (Compose f0 g0 a0) (Compose f g a) Source # | |
ToSym (f0 (g0 p0)) (f (g p)) => ToSym ((f0 :.: g0) p0) ((f :.: g) p) Source # | |
ToSym (f0 p0) (f p) => ToSym (M1 i0 c0 f0 p0) (M1 i c f p) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10) => ToSym (a1, a3, a5, a7, a9) (a2, a4, a6, a8, a10) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, ToSym a7 a1, ToSym a8 a2, ToSym a9 a3, ToSym a10 a4, ToSym a11 a5, ToSym a12 a6) => ToSym (a7, a8, a9, a10, a11, a12) (Union (a1, a2, a3, a4, a5, a6)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12) => ToSym (a1, a3, a5, a7, a9, a11) (a2, a4, a6, a8, a10, a12) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, ToSym a8 a1, ToSym a9 a2, ToSym a10 a3, ToSym a11 a4, ToSym a12 a5, ToSym a13 a6, ToSym a14 a7) => ToSym (a8, a9, a10, a11, a12, a13, a14) (Union (a1, a2, a3, a4, a5, a6, a7)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14) => ToSym (a1, a3, a5, a7, a9, a11, a13) (a2, a4, a6, a8, a10, a12, a14) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, ToSym a9 a1, ToSym a10 a2, ToSym a11 a3, ToSym a12 a4, ToSym a13 a5, ToSym a14 a6, ToSym a15 a7, ToSym a16 a8) => ToSym (a9, a10, a11, a12, a13, a14, a15, a16) (Union (a1, a2, a3, a4, a5, a6, a7, a8)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15) (a2, a4, a6, a8, a10, a12, a14, a16) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, ToSym a10 a1, ToSym a11 a2, ToSym a12 a3, ToSym a13 a4, ToSym a14 a5, ToSym a15 a6, ToSym a16 a7, ToSym a17 a8, ToSym a18 a9) => ToSym (a10, a11, a12, a13, a14, a15, a16, a17, a18) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17) (a2, a4, a6, a8, a10, a12, a14, a16, a18) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, ToSym a11 a1, ToSym a12 a2, ToSym a13 a3, ToSym a14 a4, ToSym a15 a5, ToSym a16 a6, ToSym a17 a7, ToSym a18 a8, ToSym a19 a9, ToSym a20 a10) => ToSym (a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, Mergeable a11, ToSym a12 a1, ToSym a13 a2, ToSym a14 a3, ToSym a15 a4, ToSym a16 a5, ToSym a17 a6, ToSym a18 a7, ToSym a19 a8, ToSym a20 a9, ToSym a21 a10, ToSym a22 a11) => ToSym (a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, Mergeable a11, Mergeable a12, ToSym a13 a1, ToSym a14 a2, ToSym a15 a3, ToSym a16 a4, ToSym a17 a5, ToSym a18 a6, ToSym a19 a7, ToSym a20 a8, ToSym a21 a9, ToSym a22 a10, ToSym a23 a11, ToSym a24 a12) => ToSym (a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, Mergeable a11, Mergeable a12, Mergeable a13, ToSym a14 a1, ToSym a15 a2, ToSym a16 a3, ToSym a17 a4, ToSym a18 a5, ToSym a19 a6, ToSym a20 a7, ToSym a21 a8, ToSym a22 a9, ToSym a23 a10, ToSym a24 a11, ToSym a25 a12, ToSym a26 a13) => ToSym (a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23, a25) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24, a26) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, Mergeable a11, Mergeable a12, Mergeable a13, Mergeable a14, ToSym a15 a1, ToSym a16 a2, ToSym a17 a3, ToSym a18 a4, ToSym a19 a5, ToSym a20 a6, ToSym a21 a7, ToSym a22 a8, ToSym a23 a9, ToSym a24 a10, ToSym a25 a11, ToSym a26 a12, ToSym a27 a13, ToSym a28 a14) => ToSym (a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26, ToSym a27 a28) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23, a25, a27) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24, a26, a28) Source # | |
(Mergeable a1, Mergeable a2, Mergeable a3, Mergeable a4, Mergeable a5, Mergeable a6, Mergeable a7, Mergeable a8, Mergeable a9, Mergeable a10, Mergeable a11, Mergeable a12, Mergeable a13, Mergeable a14, Mergeable a15, ToSym a16 a1, ToSym a17 a2, ToSym a18 a3, ToSym a19 a4, ToSym a20 a5, ToSym a21 a6, ToSym a22 a7, ToSym a23 a8, ToSym a24 a9, ToSym a25 a10, ToSym a26 a11, ToSym a27 a12, ToSym a28 a13, ToSym a29 a14, ToSym a30 a15) => ToSym (a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30) (Union (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26, ToSym a27 a28, ToSym a29 a30) => ToSym (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23, a25, a27, a29) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24, a26, a28, a30) Source # | |
class (forall a b. ToSym a b => ToSym (f1 a) (f2 b)) => ToSym1 (f1 :: Type -> Type) (f2 :: Type -> Type) where Source #
Lifting of ToSym
to unary type constructors.
Methods
liftToSym :: (a -> b) -> f1 a -> f2 b Source #
Lift a conversion to symbolic function to unary type constructors.
Instances
ToSym1 Identity Identity Source # | |
ToSym1 Identity Union Source # | |
ToSym1 First First Source # | |
ToSym1 Last Last Source # | |
ToSym1 Down Down Source # | |
ToSym1 Dual Dual Source # | |
ToSym1 Product Product Source # | |
ToSym1 Sum Sum Source # | |
ToSym1 Union Union Source # | |
ToSym1 Maybe Maybe Source # | |
ToSym1 [] [] Source # | |
(Generic1 f1, Generic1 f2, GToSym Arity1 (Rep1 f1) (Rep1 f2)) => ToSym1 f1 (Default1 f2) Source # | |
ToSym a1 a2 => ToSym1 (Either a1) (Either a2) Source # | |
ToSym1 a1 a2 => ToSym1 (MaybeT a1) (MaybeT a2) Source # | |
ToSym a1 a2 => ToSym1 ((,) a1) ((,) a2) Source # | |
ToSym a0 a => ToSym1 (Const a0 :: Type -> Type) (Const a :: Type -> Type) Source # | |
ToSym1 f0 f => ToSym1 (Ap f0) (Ap f) Source # | |
ToSym1 f0 f => ToSym1 (Alt f0) (Alt f) Source # | |
(ToSym a1 a2, ToSym1 a3 a4) => ToSym1 (ExceptT a1 a3) (ExceptT a2 a4) Source # | |
ToSym1 m m1 => ToSym1 (IdentityT m) (IdentityT m1) Source # | |
(ToSym s2 s1, ToSym1 m1 m2) => ToSym1 (ReaderT s1 m1) (ReaderT s2 m2) Source # | |
ToSym1 m1 m2 => ToSym1 (StateT s m1) (StateT s m2) Source # | |
ToSym1 m1 m2 => ToSym1 (StateT s m1) (StateT s m2) Source # | |
(ToSym a1 a2, ToSym1 a3 a4) => ToSym1 (WriterT a1 a3) (WriterT a2 a4) Source # | |
(ToSym a1 a2, ToSym1 a3 a4) => ToSym1 (WriterT a1 a3) (WriterT a2 a4) Source # | |
(ToSym a1 a2, ToSym a3 a4) => ToSym1 ((,,) a1 a3) ((,,) a2 a4) Source # | |
(ToSym1 l0 l, ToSym1 r0 r) => ToSym1 (Product l0 r0) (Product l r) Source # | |
(ToSym1 l0 l, ToSym1 r0 r) => ToSym1 (Sum l0 r0) (Sum l r) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6) => ToSym1 ((,,,) a1 a3 a5) ((,,,) a2 a4 a6) Source # | |
ToSym c a => ToSym1 ((->) a) ((->) c) Source # | |
(ToSym1 f0 f, ToSym1 g0 g) => ToSym1 (Compose f0 g0) (Compose f g) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8) => ToSym1 ((,,,,) a1 a3 a5 a7) ((,,,,) a2 a4 a6 a8) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10) => ToSym1 ((,,,,,) a1 a3 a5 a7 a9) ((,,,,,) a2 a4 a6 a8 a10) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12) => ToSym1 ((,,,,,,) a1 a3 a5 a7 a9 a11) ((,,,,,,) a2 a4 a6 a8 a10 a12) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14) => ToSym1 ((,,,,,,,) a1 a3 a5 a7 a9 a11 a13) ((,,,,,,,) a2 a4 a6 a8 a10 a12 a14) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16) => ToSym1 ((,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15) ((,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18) => ToSym1 ((,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17) ((,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20) => ToSym1 ((,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19) ((,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22) => ToSym1 ((,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21) ((,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24) => ToSym1 ((,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21 a23) ((,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22 a24) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26) => ToSym1 ((,,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21 a23 a25) ((,,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22 a24 a26) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26, ToSym a27 a28) => ToSym1 ((,,,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21 a23 a25 a27) ((,,,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22 a24 a26 a28) Source # | |
toSym1 :: (ToSym1 f1 f2, ToSym a b) => f1 a -> f2 b Source #
Lift the standard toSym
to unary type constructors.
class (forall a b. ToSym a b => ToSym1 (f1 a) (f2 b)) => ToSym2 (f1 :: Type -> Type -> Type) (f2 :: Type -> Type -> Type) where Source #
Lifting of ToSym
to binary type constructors.
Methods
liftToSym2 :: (a -> b) -> (c -> d) -> f1 a c -> f2 b d Source #
Lift conversion to symbolic functions to binary type constructors.
Instances
ToSym2 Either Either Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> Either a c -> Either b d Source # | |
ToSym2 (,) (,) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a, c) -> (b, d) Source # | |
ToSym a1 a2 => ToSym2 ((,,) a1) ((,,) a2) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a, c) -> (a2, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4) => ToSym2 ((,,,) a1 a3) ((,,,) a2 a4) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a, c) -> (a2, a4, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6) => ToSym2 ((,,,,) a1 a3 a5) ((,,,,) a2 a4 a6) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a, c) -> (a2, a4, a6, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8) => ToSym2 ((,,,,,) a1 a3 a5 a7) ((,,,,,) a2 a4 a6 a8) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a, c) -> (a2, a4, a6, a8, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10) => ToSym2 ((,,,,,,) a1 a3 a5 a7 a9) ((,,,,,,) a2 a4 a6 a8 a10) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a, c) -> (a2, a4, a6, a8, a10, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12) => ToSym2 ((,,,,,,,) a1 a3 a5 a7 a9 a11) ((,,,,,,,) a2 a4 a6 a8 a10 a12) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a, c) -> (a2, a4, a6, a8, a10, a12, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14) => ToSym2 ((,,,,,,,,) a1 a3 a5 a7 a9 a11 a13) ((,,,,,,,,) a2 a4 a6 a8 a10 a12 a14) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a, c) -> (a2, a4, a6, a8, a10, a12, a14, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16) => ToSym2 ((,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15) ((,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18) => ToSym2 ((,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17) ((,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a17, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, a18, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20) => ToSym2 ((,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19) ((,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22) => ToSym2 ((,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21) ((,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24) => ToSym2 ((,,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21 a23) ((,,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22 a24) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24, b, d) Source # | |
(ToSym a1 a2, ToSym a3 a4, ToSym a5 a6, ToSym a7 a8, ToSym a9 a10, ToSym a11 a12, ToSym a13 a14, ToSym a15 a16, ToSym a17 a18, ToSym a19 a20, ToSym a21 a22, ToSym a23 a24, ToSym a25 a26) => ToSym2 ((,,,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21 a23 a25) ((,,,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22 a24 a26) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods liftToSym2 :: (a -> b) -> (c -> d) -> (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21, a23, a25, a, c) -> (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22, a24, a26, b, d) Source # |
toSym2 :: (ToSym2 f1 f2, ToSym a b, ToSym c d) => f1 a c -> f2 b d Source #
Lift the standard toSym
to binary type constructors.
Generic ToSym
data family ToSymArgs arity a b Source #
The arguments to the generic toSym
function.
Instances
data ToSymArgs Arity0 _ _1 Source # | |
data ToSymArgs Arity1 _ _1 Source # | |
class GToSym arity (f1 :: Type -> Type) (f2 :: Type -> Type) where Source #
The class of types that can be generically converted to symbolic values.
Instances
GToSym Arity1 Par1 Par1 Source # | |
GToSym arity (U1 :: Type -> Type) (U1 :: Type -> Type) Source # | |
GToSym arity (V1 :: Type -> Type) (V1 :: Type -> Type) Source # | |
ToSym1 f1 f2 => GToSym Arity1 (Rec1 f1) (Rec1 f2) Source # | |
(GToSym arity a b, GToSym arity c d) => GToSym arity (a :*: c) (b :*: d) Source # | |
(GToSym arity a b, GToSym arity c d) => GToSym arity (a :+: c) (b :+: d) Source # | |
ToSym a b => GToSym arity (K1 i a :: Type -> Type) (K1 i b :: Type -> Type) Source # | |
(ToSym1 f1 f2, GToSym Arity1 g1 g2) => GToSym Arity1 (f1 :.: g1) (f2 :.: g2) Source # | |
GToSym arity f1 f2 => GToSym arity (M1 i c1 f1) (M1 i c2 f2) Source # | |