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

Grisette.Internal.Core.Data.Class.ToCon

Description

 
Synopsis

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

Instances details
ToCon All All Source # 
Instance details

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

Methods

toCon :: All -> Maybe All Source #

ToCon Any Any Source # 
Instance details

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

Methods

toCon :: Any -> Maybe Any Source #

ToCon Int16 Int16 Source # 
Instance details

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

Methods

toCon :: Int16 -> Maybe Int16 Source #

ToCon Int32 Int32 Source # 
Instance details

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

Methods

toCon :: Int32 -> Maybe Int32 Source #

ToCon Int64 Int64 Source # 
Instance details

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

Methods

toCon :: Int64 -> Maybe Int64 Source #

ToCon Int8 Int8 Source # 
Instance details

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

Methods

toCon :: Int8 -> Maybe Int8 Source #

ToCon Word16 Word16 Source # 
Instance details

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

ToCon Word32 Word32 Source # 
Instance details

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

ToCon Word64 Word64 Source # 
Instance details

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

ToCon Word8 Word8 Source # 
Instance details

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

Methods

toCon :: Word8 -> Maybe Word8 Source #

ToCon ByteString ByteString Source # 
Instance details

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

ToCon Ordering Ordering Source # 
Instance details

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

ToCon AssertionError AssertionError Source # 
Instance details

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

ToCon VerificationConditions VerificationConditions Source # 
Instance details

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

ToCon FPRoundingMode FPRoundingMode Source # 
Instance details

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

ToCon SymBool SymBool Source # 
Instance details

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

ToCon SymBool Bool Source # 
Instance details

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

ToCon SymFP32 Float Source # 
Instance details

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

ToCon SymFP64 Double Source # 
Instance details

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

ToCon SymFPRoundingMode FPRoundingMode Source # 
Instance details

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

ToCon SymFPRoundingMode SymFPRoundingMode Source # 
Instance details

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

ToCon SymInteger SymInteger Source # 
Instance details

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

ToCon SymInteger Integer Source # 
Instance details

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

ToCon Text Text Source # 
Instance details

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

Methods

toCon :: Text -> Maybe Text Source #

ToCon Integer Integer Source # 
Instance details

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

ToCon () () Source # 
Instance details

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

Methods

toCon :: () -> Maybe () Source #

ToCon Bool Bool Source # 
Instance details

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

Methods

toCon :: Bool -> Maybe Bool Source #

ToCon Char Char Source # 
Instance details

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

Methods

toCon :: Char -> Maybe Char Source #

ToCon Double Double Source # 
Instance details

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

ToCon Float Float Source # 
Instance details

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

Methods

toCon :: Float -> Maybe Float Source #

ToCon Int Int Source # 
Instance details

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

Methods

toCon :: Int -> Maybe Int Source #

ToCon Word Word Source # 
Instance details

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

Methods

toCon :: Word -> Maybe Word Source #

ToCon v v Source # 
Instance details

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

Methods

toCon :: v -> Maybe v Source #

ToCon a b => ToCon a (Identity b) Source # 
Instance details

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

Methods

toCon :: a -> Maybe (Identity b) Source #

(Generic a, Generic b, GToCon Arity0 (Rep a) (Rep b)) => ToCon a (Default b) Source # 
Instance details

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

Methods

toCon :: a -> Maybe (Default b) Source #

ToCon a b => ToCon (Identity a) b Source # 
Instance details

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

Methods

toCon :: Identity a -> Maybe b Source #

(ToCon a b, Mergeable a) => ToCon (Union a) b Source # 
Instance details

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

Methods

toCon :: Union a -> Maybe b Source #

ToCon (SymIntN 8) Int8 Source # 
Instance details

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

Methods

toCon :: SymIntN 8 -> Maybe Int8 Source #

ToCon (SymIntN 16) Int16 Source # 
Instance details

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

Methods

toCon :: SymIntN 16 -> Maybe Int16 Source #

ToCon (SymIntN 32) Int32 Source # 
Instance details

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

Methods

toCon :: SymIntN 32 -> Maybe Int32 Source #

ToCon (SymIntN 64) Int64 Source # 
Instance details

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

Methods

toCon :: SymIntN 64 -> Maybe Int64 Source #

ToCon (SymIntN 64) Int Source # 
Instance details

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

Methods

toCon :: SymIntN 64 -> Maybe Int Source #

ToCon (SymWordN 8) Word8 Source # 
Instance details

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

Methods

toCon :: SymWordN 8 -> Maybe Word8 Source #

ToCon (SymWordN 16) Word16 Source # 
Instance details

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

Methods

toCon :: SymWordN 16 -> Maybe Word16 Source #

ToCon (SymWordN 32) Word32 Source # 
Instance details

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

Methods

toCon :: SymWordN 32 -> Maybe Word32 Source #

ToCon (SymWordN 64) Word64 Source # 
Instance details

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

Methods

toCon :: SymWordN 64 -> Maybe Word64 Source #

ToCon (SymWordN 64) Word Source # 
Instance details

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

Methods

toCon :: SymWordN 64 -> Maybe Word Source #

ToCon a b => ToCon (Identity a) (Identity b) Source # 
Instance details

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

Methods

toCon :: Identity a -> Maybe (Identity b) Source #

ToCon a_1 a_2 => ToCon (First a_1) (First a_2) Source # 
Instance details

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

Methods

toCon :: First a_1 -> Maybe (First a_2) Source #

ToCon a_1 a_2 => ToCon (Last a_1) (Last a_2) Source # 
Instance details

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

Methods

toCon :: Last a_1 -> Maybe (Last a_2) Source #

ToCon a_1 a_2 => ToCon (Down a_1) (Down a_2) Source # 
Instance details

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

Methods

toCon :: Down a_1 -> Maybe (Down a_2) Source #

ToCon a_1 a_2 => ToCon (Dual a_1) (Dual a_2) Source # 
Instance details

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

Methods

toCon :: Dual a_1 -> Maybe (Dual a_2) Source #

ToCon a_1 a_2 => ToCon (Product a_1) (Product a_2) Source # 
Instance details

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

Methods

toCon :: Product a_1 -> Maybe (Product a_2) Source #

ToCon a_1 a_2 => ToCon (Sum a_1) (Sum a_2) Source # 
Instance details

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

Methods

toCon :: Sum a_1 -> Maybe (Sum a_2) Source #

ToCon p0 p => ToCon (Par1 p0) (Par1 p) Source # 
Instance details

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

Methods

toCon :: Par1 p0 -> Maybe (Par1 p) Source #

ToCon a b => ToCon (Union a) (Union b) Source # 
Instance details

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

Methods

toCon :: Union a -> Maybe (Union b) Source #

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

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

Methods

toCon :: IntN n -> Maybe (IntN n) Source #

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

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

Methods

toCon :: WordN n -> Maybe (WordN n) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => ToCon (sbv n) (cbv n)) => ToCon (SomeBV sbv) (SomeBV cbv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

toCon :: SomeBV sbv -> Maybe (SomeBV cbv) Source #

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

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

Methods

toCon :: SymIntN n -> Maybe (IntN n) Source #

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

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

Methods

toCon :: SymIntN n -> Maybe (SymIntN n) Source #

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

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

Methods

toCon :: SymWordN n -> Maybe (WordN n) Source #

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

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

Methods

toCon :: SymWordN n -> Maybe (SymWordN n) Source #

ToCon a_1 a_2 => ToCon (Maybe a_1) (Maybe a_2) Source # 
Instance details

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

Methods

toCon :: Maybe a_1 -> Maybe (Maybe a_2) Source #

ToCon a_1 a_2 => ToCon [a_1] [a_2] Source # 
Instance details

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

Methods

toCon :: [a_1] -> Maybe [a_2] Source #

(Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2), ToCon a b) => ToCon (f1 a) (Default1 f2 b) Source # 
Instance details

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

Methods

toCon :: f1 a -> Maybe (Default1 f2 b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2) => ToCon (Either a_1 b_1) (Either a_2 b_2) Source # 
Instance details

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

Methods

toCon :: Either a_1 b_1 -> Maybe (Either a_2 b_2) Source #

(ToCon e1 e2, ToCon a1 a2) => ToCon (Either e1 a1) (CBMCEither e2 a2) Source # 
Instance details

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

Methods

toCon :: Either e1 a1 -> Maybe (CBMCEither e2 a2) Source #

ToCon (U1 p0) (U1 p) Source # 
Instance details

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

Methods

toCon :: U1 p0 -> Maybe (U1 p) Source #

ToCon (V1 p0) (V1 p) Source # 
Instance details

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

Methods

toCon :: V1 p0 -> Maybe (V1 p) Source #

(ToCon e1 e2, ToCon a1 a2) => ToCon (CBMCEither e1 a1) (Either e2 a2) Source # 
Instance details

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

Methods

toCon :: CBMCEither e1 a1 -> Maybe (Either e2 a2) Source #

(ToCon e1 e2, ToCon a1 a2) => ToCon (CBMCEither e1 a1) (CBMCEither e2 a2) Source # 
Instance details

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 # 
Instance details

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

Methods

toCon :: FP eb sb -> Maybe (FP eb sb) Source #

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

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

Methods

toCon :: SymFP eb sb -> Maybe (FP eb sb) Source #

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

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

Methods

toCon :: SymFP eb sb -> Maybe (SymFP eb sb) Source #

(SupportedPrim a, SupportedPrim b) => ToCon (a -~> b) (a -~> b) Source # 
Instance details

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

Methods

toCon :: (a -~> b) -> Maybe (a -~> b) Source #

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

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

Methods

toCon :: (sa -~> sb) -> Maybe (ca --> cb) Source #

(SupportedPrim a, SupportedPrim b) => ToCon (a =~> b) (a =~> b) Source # 
Instance details

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

Methods

toCon :: (a =~> b) -> Maybe (a =~> b) Source #

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

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

Methods

toCon :: (sa =~> sb) -> Maybe (ca =-> cb) Source #

(ToCon1 m1 m2, ToCon a b) => ToCon (MaybeT m1 a) (MaybeT m2 b) Source # 
Instance details

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

Methods

toCon :: MaybeT m1 a -> Maybe (MaybeT m2 b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2) => ToCon (a_1, b_1) (a_2, b_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1) -> Maybe (a_2, b_2) Source #

ToCon (m1 (CBMCEither e1 a)) (Either e2 b) => ToCon (CBMCExceptT e1 m1 a) (Either e2 b) Source # 
Instance details

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

Methods

toCon :: CBMCExceptT e1 m1 a -> Maybe (Either e2 b) Source #

ToCon (m1 (Either e1 a)) (Either e2 b) => ToCon (ExceptT e1 m1 a) (Either e2 b) Source # 
Instance details

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

Methods

toCon :: ExceptT e1 m1 a -> Maybe (Either e2 b) Source #

ToCon a0 a => ToCon (Const a0 b0) (Const a b) Source # 
Instance details

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

Methods

toCon :: Const a0 b0 -> Maybe (Const a b) Source #

ToCon (f0 a0) (f a) => ToCon (Ap f0 a0) (Ap f a) Source # 
Instance details

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

Methods

toCon :: Ap f0 a0 -> Maybe (Ap f a) Source #

ToCon (f0 a0) (f a) => ToCon (Alt f0 a0) (Alt f a) Source # 
Instance details

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

Methods

toCon :: Alt f0 a0 -> Maybe (Alt f a) Source #

ToCon (f0 p0) (f p) => ToCon (Rec1 f0 p0) (Rec1 f p) Source # 
Instance details

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

Methods

toCon :: Rec1 f0 p0 -> Maybe (Rec1 f p) Source #

ToCon (m1 (CBMCEither e1 a)) (m2 (CBMCEither e2 b)) => ToCon (CBMCExceptT e1 m1 a) (CBMCExceptT e2 m2 b) Source # 
Instance details

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

Methods

toCon :: CBMCExceptT e1 m1 a -> Maybe (CBMCExceptT e2 m2 b) Source #

(ToCon1 m1 m2, ToCon e1 e2, ToCon a b) => ToCon (ExceptT e1 m1 a) (ExceptT e2 m2 b) Source # 
Instance details

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

Methods

toCon :: ExceptT e1 m1 a -> Maybe (ExceptT e2 m2 b) Source #

(ToCon1 m m1, ToCon a b) => ToCon (IdentityT m a) (IdentityT m1 b) Source # 
Instance details

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

Methods

toCon :: IdentityT m a -> Maybe (IdentityT m1 b) Source #

(ToCon1 m1 m2, ToCon a b, ToCon s1 s2) => ToCon (WriterT s1 m1 a) (WriterT s2 m2 b) Source # 
Instance details

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

Methods

toCon :: WriterT s1 m1 a -> Maybe (WriterT s2 m2 b) Source #

(ToCon1 m1 m2, ToCon a b, ToCon s1 s2) => ToCon (WriterT s1 m1 a) (WriterT s2 m2 b) Source # 
Instance details

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

Methods

toCon :: WriterT s1 m1 a -> Maybe (WriterT s2 m2 b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2) => ToCon (a_1, b_1, c_1) (a_2, b_2, c_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1) -> Maybe (a_2, b_2, c_2) Source #

(ToCon (l0 a0) (l a), ToCon (r0 a0) (r a)) => ToCon (Product l0 r0 a0) (Product l r a) Source # 
Instance details

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

Methods

toCon :: Product l0 r0 a0 -> Maybe (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 # 
Instance details

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

Methods

toCon :: Sum l0 r0 a0 -> Maybe (Sum l r a) Source #

(ToCon (f0 p0) (f p), ToCon (g0 p0) (g p)) => ToCon ((f0 :*: g0) p0) ((f :*: g) p) Source # 
Instance details

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

Methods

toCon :: (f0 :*: g0) p0 -> Maybe ((f :*: g) p) Source #

(ToCon (f0 p0) (f p), ToCon (g0 p0) (g p)) => ToCon ((f0 :+: g0) p0) ((f :+: g) p) Source # 
Instance details

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

Methods

toCon :: (f0 :+: g0) p0 -> Maybe ((f :+: g) p) Source #

ToCon c0 c => ToCon (K1 i0 c0 p0) (K1 i c p) Source # 
Instance details

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

Methods

toCon :: K1 i0 c0 p0 -> Maybe (K1 i c p) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2) => ToCon (a_1, b_1, c_1, d_1) (a_2, b_2, c_2, d_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1) -> Maybe (a_2, b_2, c_2, d_2) Source #

ToCon (f0 (g0 a0)) (f (g a)) => ToCon (Compose f0 g0 a0) (Compose f g a) Source # 
Instance details

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

Methods

toCon :: Compose f0 g0 a0 -> Maybe (Compose f g a) Source #

ToCon (f0 (g0 p0)) (f (g p)) => ToCon ((f0 :.: g0) p0) ((f :.: g) p) Source # 
Instance details

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

Methods

toCon :: (f0 :.: g0) p0 -> Maybe ((f :.: g) p) Source #

ToCon (f0 p0) (f p) => ToCon (M1 i0 c0 f0 p0) (M1 i c f p) Source # 
Instance details

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

Methods

toCon :: M1 i0 c0 f0 p0 -> Maybe (M1 i c f p) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2) => ToCon (a_1, b_1, c_1, d_1, e_1) (a_2, b_2, c_2, d_2, e_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1) -> Maybe (a_2, b_2, c_2, d_2, e_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1) (a_2, b_2, c_2, d_2, e_2, f_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2, ToCon m_1 m_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2, ToCon m_1 m_2, ToCon n_1 n_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, n_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, n_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2, ToCon m_1 m_2, ToCon n_1 n_2, ToCon o_1 o_2) => ToCon (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, n_1, o_1) (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2, o_2) Source # 
Instance details

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

Methods

toCon :: (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, n_1, o_1) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2, o_2) Source #

class (forall a b. ToCon a b => ToCon (f1 a) (f2 b)) => ToCon1 f1 f2 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

Instances details
ToCon1 Identity Identity Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Identity a -> Maybe (Identity b) Source #

ToCon1 First First Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> First a -> Maybe (First b) Source #

ToCon1 Last Last Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Last a -> Maybe (Last b) Source #

ToCon1 Down Down Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Down a -> Maybe (Down b) Source #

ToCon1 Dual Dual Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Dual a -> Maybe (Dual b) Source #

ToCon1 Product Product Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Product a -> Maybe (Product b) Source #

ToCon1 Sum Sum Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Sum a -> Maybe (Sum b) Source #

ToCon1 Union Union Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Union a -> Maybe (Union b) Source #

ToCon1 Maybe Maybe Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Maybe a -> Maybe (Maybe b) Source #

ToCon1 List List Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> [a] -> Maybe [b] Source #

(Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2)) => ToCon1 f1 (Default1 f2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> f1 a -> Maybe (Default1 f2 b) Source #

ToCon a_1 a_2 => ToCon1 (Either a_1) (Either a_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Either a_1 a -> Maybe (Either a_2 b) Source #

ToCon1 m1 m2 => ToCon1 (MaybeT m1) (MaybeT m2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> MaybeT m1 a -> Maybe (MaybeT m2 b) Source #

ToCon a_1 a_2 => ToCon1 ((,) a_1) ((,) a_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, a) -> Maybe (a_2, b) Source #

ToCon a0 a => ToCon1 (Const a0 :: Type -> Type) (Const a :: Type -> Type) Source # 
Instance details

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

Methods

liftToCon :: (a1 -> Maybe b) -> Const a0 a1 -> Maybe (Const a b) Source #

ToCon1 f0 f => ToCon1 (Ap f0) (Ap f) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Ap f0 a -> Maybe (Ap f b) Source #

ToCon1 f0 f => ToCon1 (Alt f0) (Alt f) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Alt f0 a -> Maybe (Alt f b) Source #

(ToCon1 m1 m2, ToCon e1 e2) => ToCon1 (ExceptT e1 m1) (ExceptT e2 m2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> ExceptT e1 m1 a -> Maybe (ExceptT e2 m2 b) Source #

ToCon1 m m1 => ToCon1 (IdentityT m) (IdentityT m1) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> IdentityT m a -> Maybe (IdentityT m1 b) Source #

(ToCon1 m1 m2, ToCon s1 s2) => ToCon1 (WriterT s1 m1) (WriterT s2 m2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> WriterT s1 m1 a -> Maybe (WriterT s2 m2 b) Source #

(ToCon1 m1 m2, ToCon s1 s2) => ToCon1 (WriterT s1 m1) (WriterT s2 m2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> WriterT s1 m1 a -> Maybe (WriterT s2 m2 b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2) => ToCon1 ((,,) a_1 b_1) ((,,) a_2 b_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, a) -> Maybe (a_2, b_2, b) Source #

(ToCon1 l0 l, ToCon1 r0 r) => ToCon1 (Product l0 r0) (Product l r) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Product l0 r0 a -> Maybe (Product l r b) Source #

(ToCon1 l0 l, ToCon1 r0 r) => ToCon1 (Sum l0 r0) (Sum l r) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Sum l0 r0 a -> Maybe (Sum l r b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2) => ToCon1 ((,,,) a_1 b_1 c_1) ((,,,) a_2 b_2 c_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, a) -> Maybe (a_2, b_2, c_2, b) Source #

(ToCon1 f0 f, ToCon1 g0 g) => ToCon1 (Compose f0 g0) (Compose f g) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> Compose f0 g0 a -> Maybe (Compose f g b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2) => ToCon1 ((,,,,) a_1 b_1 c_1 d_1) ((,,,,) a_2 b_2 c_2 d_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, a) -> Maybe (a_2, b_2, c_2, d_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2) => ToCon1 ((,,,,,) a_1 b_1 c_1 d_1 e_1) ((,,,,,) a_2 b_2 c_2 d_2 e_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2) => ToCon1 ((,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1) ((,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2) => ToCon1 ((,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1) ((,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2) => ToCon1 ((,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1) ((,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2) => ToCon1 ((,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1) ((,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2) => ToCon1 ((,,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1 j_1) ((,,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2 j_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2) => ToCon1 ((,,,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1 j_1 k_1) ((,,,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2 j_2 k_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2) => ToCon1 ((,,,,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1 j_1 k_1 l_1) ((,,,,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2 j_2 k_2 l_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2, ToCon m_1 m_2) => ToCon1 ((,,,,,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1 j_1 k_1 l_1 m_1) ((,,,,,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2 j_2 k_2 l_2 m_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, b) Source #

(ToCon a_1 a_2, ToCon b_1 b_2, ToCon c_1 c_2, ToCon d_1 d_2, ToCon e_1 e_2, ToCon f_1 f_2, ToCon g_1 g_2, ToCon h_1 h_2, ToCon i_1 i_2, ToCon j_1 j_2, ToCon k_1 k_2, ToCon l_1 l_2, ToCon m_1 m_2, ToCon n_1 n_2) => ToCon1 ((,,,,,,,,,,,,,,) a_1 b_1 c_1 d_1 e_1 f_1 g_1 h_1 i_1 j_1 k_1 l_1 m_1 n_1) ((,,,,,,,,,,,,,,) a_2 b_2 c_2 d_2 e_2 f_2 g_2 h_2 i_2 j_2 k_2 l_2 m_2 n_2) Source # 
Instance details

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

Methods

liftToCon :: (a -> Maybe b) -> (a_1, b_1, c_1, d_1, e_1, f_1, g_1, h_1, i_1, j_1, k_1, l_1, m_1, n_1, a) -> Maybe (a_2, b_2, c_2, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, l_2, m_2, n_2, b) 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 f2 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

Instances details
ToCon2 Either Either Source # 
Instance details

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

Methods

liftToCon2 :: (a -> Maybe b) -> (c -> Maybe d) -> Either a c -> Maybe (Either b d) Source #

ToCon2 (,) (,) Source # 
Instance details

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

Methods

liftToCon2 :: (a -> Maybe b) -> (c -> Maybe d) -> (a, c) -> Maybe (b, d) Source #

ToCon a b => ToCon2 ((,,) a) ((,,) b) Source # 
Instance details

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

Methods

liftToCon2 :: (a0 -> Maybe b0) -> (c -> Maybe d) -> (a, a0, c) -> Maybe (b, b0, d) Source #

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

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

Methods

liftToCon2 :: (a0 -> Maybe b0) -> (c0 -> Maybe d0) -> (a, b, a0, c0) -> Maybe (c, d, b0, d0) 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 :: Type Source #

The arguments to the generic toCon function.

Instances

Instances details
data ToConArgs Arity0 _ _1 Source # 
Instance details

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

newtype ToConArgs Arity1 a b Source # 
Instance details

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

newtype ToConArgs Arity1 a b = ToConArgs1 (a -> Maybe b)

class GToCon arity f1 f2 where Source #

The class of types that can be generically converted to concrete values.

Methods

gtoCon :: ToConArgs arity a b -> f1 a -> Maybe (f2 b) Source #

Instances

Instances details
GToCon Arity1 Par1 Par1 Source # 
Instance details

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

Methods

gtoCon :: ToConArgs Arity1 a b -> Par1 a -> Maybe (Par1 b) Source #

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

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

Methods

gtoCon :: ToConArgs arity a b -> U1 a -> Maybe (U1 b) Source #

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

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

Methods

gtoCon :: ToConArgs arity a b -> V1 a -> Maybe (V1 b) Source #

ToCon1 f1 f2 => GToCon Arity1 (Rec1 f1) (Rec1 f2) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs Arity1 a b -> Rec1 f1 a -> Maybe (Rec1 f2 b) Source #

(GToCon arity a b, GToCon arity c d) => GToCon arity (a :*: c) (b :*: d) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs arity a0 b0 -> (a :*: c) a0 -> Maybe ((b :*: d) b0) Source #

(GToCon arity a b, GToCon arity c d) => GToCon arity (a :+: c) (b :+: d) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs arity a0 b0 -> (a :+: c) a0 -> Maybe ((b :+: d) b0) Source #

ToCon a b => GToCon arity (K1 i a :: Type -> Type) (K1 i b :: Type -> Type) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs arity a0 b0 -> K1 i a a0 -> Maybe (K1 i b b0) Source #

(ToCon1 f1 f2, GToCon Arity1 g1 g2) => GToCon Arity1 (f1 :.: g1) (f2 :.: g2) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs Arity1 a b -> (f1 :.: g1) a -> Maybe ((f2 :.: g2) b) Source #

GToCon arity a b => GToCon arity (M1 i c1 a) (M1 i c2 b) Source # 
Instance details

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

Methods

gtoCon :: ToConArgs arity a0 b0 -> M1 i c1 a a0 -> Maybe (M1 i c2 b b0) Source #

genericToCon :: (Generic a, Generic b, GToCon Arity0 (Rep a) (Rep b)) => a -> Maybe b Source #

Generic toCon function.

genericLiftToCon :: (Generic1 f1, Generic1 f2, GToCon Arity1 (Rep1 f1) (Rep1 f2)) => (a -> Maybe b) -> f1 a -> Maybe (f2 b) Source #

Generic liftToCon function.