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.ToCon
Description
Synopsis
- class ToCon a b where
- class (forall a b. ToCon a b => ToCon (f1 a) (f2 b)) => ToCon1 (f1 :: Type -> Type) (f2 :: Type -> Type) where
- toCon1 :: (ToCon1 f1 f2, ToCon a b) => f1 a -> Maybe (f2 b)
- class (forall a b. ToCon a b => ToCon1 (f1 a) (f2 b)) => ToCon2 (f1 :: Type -> Type -> Type) (f2 :: Type -> Type -> Type) where
- liftToCon2 :: (a -> Maybe b) -> (c -> Maybe d) -> f1 a c -> Maybe (f2 b d)
- toCon2 :: (ToCon2 f1 f2, ToCon a b, ToCon c d) => f1 a c -> Maybe (f2 b d)
- data family ToConArgs arity a b
- class GToCon arity (f1 :: Type -> Type) (f2 :: Type -> Type) where
- genericToCon :: (Generic a, Generic b, GToCon Arity0 (Rep a) (Rep b)) => a -> Maybe b
- genericLiftToCon :: (Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2)) => (a -> Maybe b) -> f1 a -> Maybe (f2 b)
Converting to concrete values
class ToCon a b where Source #
Convert a symbolic value to concrete value if possible.
Methods
toCon :: a -> Maybe b Source #
Convert a symbolic value to concrete value if possible.
If the symbolic value cannot be converted to concrete, the result will be Nothing
.
>>>
toCon (ssym "a" :: SymInteger) :: Maybe Integer
Nothing
>>>
toCon (con 1 :: SymInteger) :: Maybe Integer
Just 1
toCon
works on complex types too.
>>>
toCon ([con 1, con 2] :: [SymInteger]) :: Maybe [Integer]
Just [1,2]
>>>
toCon ([con 1, ssym "a"] :: [SymInteger]) :: Maybe [Integer]
Nothing
Instances
ToCon ByteString ByteString Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: ByteString -> Maybe ByteString Source # | |
ToCon All All Source # | |
ToCon Any Any Source # | |
ToCon Int16 Int16 Source # | |
ToCon Int32 Int32 Source # | |
ToCon Int64 Int64 Source # | |
ToCon Int8 Int8 Source # | |
ToCon Word16 Word16 Source # | |
ToCon Word32 Word32 Source # | |
ToCon Word64 Word64 Source # | |
ToCon Word8 Word8 Source # | |
ToCon Ordering Ordering Source # | |
ToCon AssertionError AssertionError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |
ToCon VerificationConditions VerificationConditions Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: VerificationConditions -> Maybe VerificationConditions Source # | |
ToCon FPRoundingMode FPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |
ToCon NotRepresentableFPError NotRepresentableFPError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: NotRepresentableFPError -> Maybe NotRepresentableFPError Source # | |
ToCon SomeBVException SomeBVException Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods | |
ToCon SymAlgReal Rational Source # | |
ToCon SymAlgReal AlgReal Source # | |
ToCon SymAlgReal SymAlgReal Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymAlgReal -> Maybe SymAlgReal Source # | |
ToCon SymBool SymBool Source # | |
ToCon SymBool Bool Source # | |
ToCon SymFP32 Float Source # | |
ToCon SymFP64 Double Source # | |
ToCon SymFPRoundingMode FPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |
ToCon SymFPRoundingMode SymFPRoundingMode Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymFPRoundingMode -> Maybe SymFPRoundingMode Source # | |
ToCon SymInteger SymInteger Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymInteger -> Maybe SymInteger Source # | |
ToCon SymInteger Integer Source # | |
ToCon Text Text Source # | |
ToCon Integer Integer Source # | |
ToCon () () Source # | |
ToCon Bool Bool Source # | |
ToCon Char Char Source # | |
ToCon Double Double Source # | |
ToCon Float Float Source # | |
ToCon Int Int Source # | |
ToCon Word Word Source # | |
ToCon v v Source # | |
(Generic a, Generic b, GToCon Arity0 (Rep a) (Rep b)) => ToCon a (Default b) Source # | |
ToCon a b => ToCon a (Identity b) Source # | |
ToCon a b => ToCon (Identity a) b Source # | |
ToCon (Union AssertionError) AssertionError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: Union AssertionError -> Maybe AssertionError Source # | |
ToCon (Union VerificationConditions) VerificationConditions Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: Union VerificationConditions -> Maybe VerificationConditions Source # | |
ToCon (Union NotRepresentableFPError) NotRepresentableFPError Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: Union NotRepresentableFPError -> Maybe NotRepresentableFPError Source # | |
ToCon (Union ()) () Source # | |
ToCon (SymIntN 8) Int8 Source # | |
ToCon (SymIntN 16) Int16 Source # | |
ToCon (SymIntN 32) Int32 Source # | |
ToCon (SymIntN 64) Int64 Source # | |
ToCon (SymIntN 64) Int Source # | |
ToCon (SymWordN 8) Word8 Source # | |
ToCon (SymWordN 16) Word16 Source # | |
ToCon (SymWordN 32) Word32 Source # | |
ToCon (SymWordN 64) Word64 Source # | |
ToCon (SymWordN 64) Word Source # | |
ToCon a b => ToCon (Identity a) (Identity b) Source # | |
ToCon a1 a2 => ToCon (First a1) (First a2) Source # | |
ToCon a1 a2 => ToCon (Last a1) (Last a2) Source # | |
ToCon a1 a2 => ToCon (Down a1) (Down a2) Source # | |
ToCon a1 a2 => ToCon (Dual a1) (Dual a2) Source # | |
ToCon a1 a2 => ToCon (Product a1) (Product a2) Source # | |
ToCon a1 a2 => ToCon (Sum a1) (Sum a2) Source # | |
ToCon p0 p => ToCon (Par1 p0) (Par1 p) Source # | |
(ToCon a b, Integral b) => ToCon (Ratio a) (Ratio b) Source # | |
ToCon a1 a2 => ToCon (Union (First a1)) (First a2) Source # | |
ToCon a1 a2 => ToCon (Union (Last a1)) (Last a2) Source # | |
ToCon a1 a2 => ToCon (Union (Down a1)) (Down a2) Source # | |
ToCon a1 a2 => ToCon (Union (Dual a1)) (Dual a2) Source # | |
ToCon a1 a2 => ToCon (Union (Product a1)) (Product a2) Source # | |
ToCon a1 a2 => ToCon (Union (Sum a1)) (Sum a2) Source # | |
ToCon a1 a2 => ToCon (Union (Maybe a1)) (Maybe a2) Source # | |
ToCon a1 a2 => ToCon (Union [a1]) [a2] Source # | |
ToCon a b => ToCon (Union a) (Identity b) Source # | |
ToCon a b => ToCon (Union a) (Union b) Source # | |
(KnownNat n, 1 <= n) => ToCon (IntN n) (IntN n) Source # | |
(KnownNat n, 1 <= n) => ToCon (WordN n) (WordN n) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ToCon (sbv n) (cbv n)) => ToCon (SomeBV sbv) (SomeBV cbv) Source # | |
(KnownNat n, 1 <= n) => ToCon (SymIntN n) (IntN n) Source # | |
ToCon (SymIntN n) (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => ToCon (SymWordN n) (WordN n) Source # | |
ToCon (SymWordN n) (SymWordN n) Source # | |
ToCon a1 a2 => ToCon (Maybe a1) (Maybe a2) Source # | |
ToCon a1 a2 => ToCon [a1] [a2] Source # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon (Union (Either a1 a3)) (Either a2 a4) Source # | |
(ToCon1 a1 a2, ToCon a3 a4) => ToCon (Union (MaybeT a1 a3)) (MaybeT a2 a4) Source # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon (Union (a1, a3)) (a2, a4) Source # | |
(Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2), ToCon a b) => ToCon (f1 a) (Default1 f2 b) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (Union (ExceptT a1 a3 a5)) (ExceptT a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (Union (WriterT a1 a3 a5)) (WriterT a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (Union (WriterT a1 a3 a5)) (WriterT a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6) => ToCon (Union (a1, a3, a5)) (a2, a4, a6) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8) => ToCon (Union (a1, a3, a5, a7)) (a2, a4, a6, a8) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10) => ToCon (Union (a1, a3, a5, a7, a9)) (a2, a4, a6, a8, a10) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12) => ToCon (Union (a1, a3, a5, a7, a9, a11)) (a2, a4, a6, a8, a10, a12) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14) => ToCon (Union (a1, a3, a5, a7, a9, a11, a13)) (a2, a4, a6, a8, a10, a12, a14) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16) => ToCon (Union (a1, a3, a5, a7, a9, a11, a13, a15)) (a2, a4, a6, a8, a10, a12, a14, a16) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18) => ToCon (Union (a1, a3, a5, a7, a9, a11, a13, a15, a17)) (a2, a4, a6, a8, a10, a12, a14, a16, a18) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20) => ToCon (Union (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19)) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22) => ToCon (Union (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21)) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24) => ToCon (Union (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26) => ToCon (Union (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26, ToCon a27 a28) => ToCon (Union (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26, ToCon a27 a28, ToCon a29 a30) => ToCon (Union (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 # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon (Either a1 a3) (Either a2 a4) Source # | |
(ToCon e1 e2, ToCon a1 a2) => ToCon (Either e1 a1) (CBMCEither e2 a2) Source # | |
ToCon (U1 p0) (U1 p) Source # | |
ToCon (V1 p0) (V1 p) Source # | |
(ToCon e1 e2, ToCon a1 a2) => ToCon (CBMCEither e1 a1) (Either e2 a2) Source # | |
(ToCon e1 e2, ToCon a1 a2) => ToCon (CBMCEither e1 a1) (CBMCEither e2 a2) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toCon :: CBMCEither e1 a1 -> Maybe (CBMCEither e2 a2) Source # | |
ValidFP eb sb => ToCon (FP eb sb) (FP eb sb) Source # | |
ToCon (a --> b) (a --> b) Source # | |
ValidFP eb sb => ToCon (SymFP eb sb) (FP eb sb) Source # | |
ValidFP eb sb => ToCon (SymFP eb sb) (SymFP eb sb) Source # | |
ToCon (a -~> b) (a -~> b) Source # | |
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa -~> sb) (ca --> cb) Source # | |
ToCon (a =~> b) (a =~> b) Source # | |
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa =~> sb) (ca =-> cb) Source # | |
ToCon (a =-> b) (a =-> b) Source # | |
(ToCon1 a1 a2, ToCon a3 a4) => ToCon (MaybeT a1 a3) (MaybeT a2 a4) Source # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon (a1, a3) (a2, a4) Source # | |
ToCon (m1 (CBMCEither e1 a)) (Either e2 b) => ToCon (CBMCExceptT e1 m1 a) (Either e2 b) Source # | |
ToCon (m1 (Either e1 a)) (Either e2 b) => ToCon (ExceptT e1 m1 a) (Either e2 b) Source # | |
ToCon a0 a => ToCon (Const a0 b0) (Const a b) Source # | |
ToCon (f0 a0) (f a) => ToCon (Ap f0 a0) (Ap f a) Source # | |
ToCon (f0 a0) (f a) => ToCon (Alt f0 a0) (Alt f a) Source # | |
ToCon (f0 p0) (f p) => ToCon (Rec1 f0 p0) (Rec1 f p) Source # | |
(ToCon1 m1 m2, ToCon e1 e2, ToCon a b) => ToCon (CBMCExceptT e1 m1 a) (CBMCExceptT e2 m2 b) Source # | |
Defined in Grisette.Internal.Core.Control.Monad.CBMCExcept Methods toCon :: CBMCExceptT e1 m1 a -> Maybe (CBMCExceptT e2 m2 b) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (ExceptT a1 a3 a5) (ExceptT a2 a4 a6) Source # | |
(ToCon1 m m1, ToCon a b) => ToCon (IdentityT m a) (IdentityT m1 b) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (WriterT a1 a3 a5) (WriterT a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon1 a3 a4, ToCon a5 a6) => ToCon (WriterT a1 a3 a5) (WriterT a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6) => ToCon (a1, a3, a5) (a2, a4, a6) Source # | |
(ToCon (l0 a0) (l a), ToCon (r0 a0) (r a)) => ToCon (Product l0 r0 a0) (Product l r a) Source # | |
(ToCon (l0 a0) (l a), ToCon (r0 a0) (r a)) => ToCon (Sum l0 r0 a0) (Sum l r a) Source # | |
(ToCon (f0 p0) (f p), ToCon (g0 p0) (g p)) => ToCon ((f0 :*: g0) p0) ((f :*: g) p) Source # | |
(ToCon (f0 p0) (f p), ToCon (g0 p0) (g p)) => ToCon ((f0 :+: g0) p0) ((f :+: g) p) Source # | |
ToCon c0 c => ToCon (K1 i0 c0 p0) (K1 i c p) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8) => ToCon (a1, a3, a5, a7) (a2, a4, a6, a8) Source # | |
ToCon (f0 (g0 a0)) (f (g a)) => ToCon (Compose f0 g0 a0) (Compose f g a) Source # | |
ToCon (f0 (g0 p0)) (f (g p)) => ToCon ((f0 :.: g0) p0) ((f :.: g) p) Source # | |
ToCon (f0 p0) (f p) => ToCon (M1 i0 c0 f0 p0) (M1 i c f p) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10) => ToCon (a1, a3, a5, a7, a9) (a2, a4, a6, a8, a10) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12) => ToCon (a1, a3, a5, a7, a9, a11) (a2, a4, a6, a8, a10, a12) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14) => ToCon (a1, a3, a5, a7, a9, a11, a13) (a2, a4, a6, a8, a10, a12, a14) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16) => ToCon (a1, a3, a5, a7, a9, a11, a13, a15) (a2, a4, a6, a8, a10, a12, a14, a16) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18) => ToCon (a1, a3, a5, a7, a9, a11, a13, a15, a17) (a2, a4, a6, a8, a10, a12, a14, a16, a18) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20) => ToCon (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22) => ToCon (a1, a3, a5, a7, a9, a11, a13, a15, a17, a19, a21) (a2, a4, a6, a8, a10, a12, a14, a16, a18, a20, a22) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24) => ToCon (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26) => ToCon (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26, ToCon a27 a28) => ToCon (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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26, ToCon a27 a28, ToCon a29 a30) => ToCon (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. ToCon a b => ToCon (f1 a) (f2 b)) => ToCon1 (f1 :: Type -> Type) (f2 :: Type -> Type) where Source #
Lifting of ToCon
to unary type constructors.
Methods
liftToCon :: (a -> Maybe b) -> f1 a -> Maybe (f2 b) Source #
Lift a conversion to concrete function to unary type constructors.
Instances
ToCon1 Identity Identity Source # | |
ToCon1 First First Source # | |
ToCon1 Last Last Source # | |
ToCon1 Down Down Source # | |
ToCon1 Dual Dual Source # | |
ToCon1 Product Product Source # | |
ToCon1 Sum Sum Source # | |
ToCon1 Union Identity Source # | |
ToCon1 Union Union Source # | |
ToCon1 Maybe Maybe Source # | |
ToCon1 [] [] Source # | |
(Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2)) => ToCon1 f1 (Default1 f2) Source # | |
ToCon a1 a2 => ToCon1 (Either a1) (Either a2) Source # | |
ToCon1 a1 a2 => ToCon1 (MaybeT a1) (MaybeT a2) Source # | |
ToCon a1 a2 => ToCon1 ((,) a1) ((,) a2) Source # | |
ToCon a0 a => ToCon1 (Const a0 :: Type -> Type) (Const a :: Type -> Type) Source # | |
ToCon1 f0 f => ToCon1 (Ap f0) (Ap f) Source # | |
ToCon1 f0 f => ToCon1 (Alt f0) (Alt f) Source # | |
(ToCon a1 a2, ToCon1 a3 a4) => ToCon1 (ExceptT a1 a3) (ExceptT a2 a4) Source # | |
ToCon1 m m1 => ToCon1 (IdentityT m) (IdentityT m1) Source # | |
(ToCon a1 a2, ToCon1 a3 a4) => ToCon1 (WriterT a1 a3) (WriterT a2 a4) Source # | |
(ToCon a1 a2, ToCon1 a3 a4) => ToCon1 (WriterT a1 a3) (WriterT a2 a4) Source # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon1 ((,,) a1 a3) ((,,) a2 a4) Source # | |
(ToCon1 l0 l, ToCon1 r0 r) => ToCon1 (Product l0 r0) (Product l r) Source # | |
(ToCon1 l0 l, ToCon1 r0 r) => ToCon1 (Sum l0 r0) (Sum l r) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6) => ToCon1 ((,,,) a1 a3 a5) ((,,,) a2 a4 a6) Source # | |
(ToCon1 f0 f, ToCon1 g0 g) => ToCon1 (Compose f0 g0) (Compose f g) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8) => ToCon1 ((,,,,) a1 a3 a5 a7) ((,,,,) a2 a4 a6 a8) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10) => ToCon1 ((,,,,,) a1 a3 a5 a7 a9) ((,,,,,) a2 a4 a6 a8 a10) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12) => ToCon1 ((,,,,,,) a1 a3 a5 a7 a9 a11) ((,,,,,,) a2 a4 a6 a8 a10 a12) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14) => ToCon1 ((,,,,,,,) a1 a3 a5 a7 a9 a11 a13) ((,,,,,,,) a2 a4 a6 a8 a10 a12 a14) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16) => ToCon1 ((,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15) ((,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18) => ToCon1 ((,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17) ((,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20) => ToCon1 ((,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19) ((,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22) => ToCon1 ((,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21) ((,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24) => ToCon1 ((,,,,,,,,,,,,) 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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26) => ToCon1 ((,,,,,,,,,,,,,) 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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26, ToCon a27 a28) => ToCon1 ((,,,,,,,,,,,,,,) 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 # | |
toCon1 :: (ToCon1 f1 f2, ToCon a b) => f1 a -> Maybe (f2 b) Source #
Lift the standard toCon
to unary type constructors.
class (forall a b. ToCon a b => ToCon1 (f1 a) (f2 b)) => ToCon2 (f1 :: Type -> Type -> Type) (f2 :: Type -> Type -> Type) where Source #
Lifting of ToCon
to binary type constructors.
Methods
liftToCon2 :: (a -> Maybe b) -> (c -> Maybe d) -> f1 a c -> Maybe (f2 b d) Source #
Lift conversion to concrete functions to binary type constructors.
Instances
ToCon2 Either Either Source # | |
ToCon2 (,) (,) Source # | |
ToCon a1 a2 => ToCon2 ((,,) a1) ((,,) a2) Source # | |
(ToCon a1 a2, ToCon a3 a4) => ToCon2 ((,,,) a1 a3) ((,,,) a2 a4) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6) => ToCon2 ((,,,,) a1 a3 a5) ((,,,,) a2 a4 a6) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8) => ToCon2 ((,,,,,) a1 a3 a5 a7) ((,,,,,) a2 a4 a6 a8) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10) => ToCon2 ((,,,,,,) a1 a3 a5 a7 a9) ((,,,,,,) a2 a4 a6 a8 a10) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12) => ToCon2 ((,,,,,,,) a1 a3 a5 a7 a9 a11) ((,,,,,,,) a2 a4 a6 a8 a10 a12) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14) => ToCon2 ((,,,,,,,,) a1 a3 a5 a7 a9 a11 a13) ((,,,,,,,,) a2 a4 a6 a8 a10 a12 a14) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16) => ToCon2 ((,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15) ((,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18) => ToCon2 ((,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17) ((,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20) => ToCon2 ((,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19) ((,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22) => ToCon2 ((,,,,,,,,,,,,) a1 a3 a5 a7 a9 a11 a13 a15 a17 a19 a21) ((,,,,,,,,,,,,) a2 a4 a6 a8 a10 a12 a14 a16 a18 a20 a22) Source # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24) => ToCon2 ((,,,,,,,,,,,,,) 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 # | |
(ToCon a1 a2, ToCon a3 a4, ToCon a5 a6, ToCon a7 a8, ToCon a9 a10, ToCon a11 a12, ToCon a13 a14, ToCon a15 a16, ToCon a17 a18, ToCon a19 a20, ToCon a21 a22, ToCon a23 a24, ToCon a25 a26) => ToCon2 ((,,,,,,,,,,,,,,) 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 # | |
toCon2 :: (ToCon2 f1 f2, ToCon a b, ToCon c d) => f1 a c -> Maybe (f2 b d) Source #
Lift the standard toCon
to binary type constructors.
Generic ToCon
data family ToConArgs arity a b Source #
The arguments to the generic toCon
function.
Instances
data ToConArgs Arity0 _ _1 Source # | |
newtype ToConArgs Arity1 a b Source # | |
class GToCon arity (f1 :: Type -> Type) (f2 :: Type -> Type) where Source #
The class of types that can be generically converted to concrete values.
Instances
GToCon Arity1 Par1 Par1 Source # | |
GToCon arity (U1 :: Type -> Type) (U1 :: Type -> Type) Source # | |
GToCon arity (V1 :: Type -> Type) (V1 :: Type -> Type) Source # | |
ToCon1 f1 f2 => GToCon Arity1 (Rec1 f1) (Rec1 f2) Source # | |
(GToCon arity a b, GToCon arity c d) => GToCon arity (a :*: c) (b :*: d) Source # | |
(GToCon arity a b, GToCon arity c d) => GToCon arity (a :+: c) (b :+: d) Source # | |
ToCon a b => GToCon arity (K1 i a :: Type -> Type) (K1 i b :: Type -> Type) Source # | |
(ToCon1 f1 f2, GToCon Arity1 g1 g2) => GToCon Arity1 (f1 :.: g1) (f2 :.: g2) Source # | |
GToCon arity a b => GToCon arity (M1 i c1 a) (M1 i c2 b) Source # | |