grisette-0.13.0.1: Symbolic evaluation as a library
Safe HaskellNone
LanguageHaskell2010

Grisette.Internal.Core.Data.Class.AsKey

Synopsis

Documentation

class KeyEq a where Source #

Type class for identity equality for terms.

Methods

keyEq :: a -> a -> Bool infix 4 Source #

Instances

Instances details
KeyEq AlgReal Source # 
Instance details

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

Methods

keyEq :: AlgReal -> AlgReal -> Bool Source #

KeyEq SymAlgReal Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymAlgReal

KeyEq SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

keyEq :: SymBool -> SymBool -> Bool Source #

KeyEq SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

KeyEq SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

KeyEq Integer Source # 
Instance details

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

Methods

keyEq :: Integer -> Integer -> Bool Source #

KeyEq Bool Source # 
Instance details

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

Methods

keyEq :: Bool -> Bool -> Bool Source #

Eq a => KeyEq (Identity a) Source # 
Instance details

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

Methods

keyEq :: Identity a -> Identity a -> Bool Source #

Eq a => KeyEq (Union a) Source # 
Instance details

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

Methods

keyEq :: Union a -> Union a -> Bool Source #

Eq a => KeyEq (UnionBase a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.UnionBase

Methods

keyEq :: UnionBase a -> UnionBase a -> Bool Source #

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

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

Methods

keyEq :: IntN n -> IntN n -> Bool Source #

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

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

Methods

keyEq :: WordN n -> WordN n -> Bool Source #

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

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

keyEq :: SomeBV bv -> SomeBV bv -> Bool Source #

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

Defined in Grisette.Internal.SymPrim.SymBV

Methods

keyEq :: SymIntN n -> SymIntN n -> Bool Source #

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

Defined in Grisette.Internal.SymPrim.SymBV

Methods

keyEq :: SymWordN n -> SymWordN n -> Bool Source #

ValidFP a b => KeyEq (FP a b) Source # 
Instance details

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

Methods

keyEq :: FP a b -> FP a b -> Bool Source #

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

Defined in Grisette.Internal.SymPrim.SymFP

Methods

keyEq :: SymFP eb sb -> SymFP eb sb -> Bool Source #

KeyEq (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

keyEq :: (sa -~> sb) -> (sa -~> sb) -> Bool Source #

KeyEq (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

keyEq :: (sa =~> sb) -> (sa =~> sb) -> Bool Source #

class KeyEq a => KeyOrd a where Source #

Type class for comparing terms based on their identity.

Methods

keyCompare :: a -> a -> Ordering infix 4 Source #

class KeyEq a => KeyHashable a where Source #

Type class for hashing terms based on their identity.

Methods

keyHashWithSalt :: Int -> a -> Int infixl 0 Source #

Instances

Instances details
KeyHashable AlgReal Source # 
Instance details

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

KeyHashable SymAlgReal Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymAlgReal

KeyHashable SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

KeyHashable SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

KeyHashable SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

KeyHashable Integer Source # 
Instance details

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

KeyHashable Bool Source # 
Instance details

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

(Eq a, Hashable a) => KeyHashable (Identity a) Source # 
Instance details

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

(Eq a, Hashable a) => KeyHashable (Union a) Source # 
Instance details

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

Methods

keyHashWithSalt :: Int -> Union a -> Int Source #

(Eq a, Hashable a) => KeyHashable (UnionBase a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.UnionBase

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

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

Methods

keyHashWithSalt :: Int -> IntN n -> Int Source #

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

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

Methods

keyHashWithSalt :: Int -> WordN n -> Int Source #

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

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

keyHashWithSalt :: Int -> SomeBV bv -> Int Source #

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

Defined in Grisette.Internal.SymPrim.SymBV

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

Defined in Grisette.Internal.SymPrim.SymBV

ValidFP a b => KeyHashable (FP a b) Source # 
Instance details

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

Methods

keyHashWithSalt :: Int -> FP a b -> Int Source #

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

Defined in Grisette.Internal.SymPrim.SymFP

Methods

keyHashWithSalt :: Int -> SymFP eb sb -> Int Source #

KeyHashable (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

keyHashWithSalt :: Int -> (sa -~> sb) -> Int Source #

KeyHashable (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

keyHashWithSalt :: Int -> (sa =~> sb) -> Int Source #

class KeyEq1 (f :: Type -> Type) where Source #

Methods

liftKeyEq :: (a -> b -> Bool) -> f a -> f b -> Bool Source #

Instances

Instances details
KeyEq1 Union Source # 
Instance details

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

Methods

liftKeyEq :: (a -> b -> Bool) -> Union a -> Union b -> Bool Source #

KeyEq1 UnionBase Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.UnionBase

Methods

liftKeyEq :: (a -> b -> Bool) -> UnionBase a -> UnionBase b -> Bool Source #

class KeyEq1 f => KeyOrd1 (f :: Type -> Type) where Source #

Methods

liftKeyCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering Source #

class KeyEq1 f => KeyHashable1 (f :: Type -> Type) where Source #

Methods

liftKeyHashWithSalt :: (Int -> a -> Int) -> Int -> f a -> Int Source #

Instances

Instances details
KeyHashable1 Union Source # 
Instance details

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

Methods

liftKeyHashWithSalt :: (Int -> a -> Int) -> Int -> Union a -> Int Source #

KeyHashable1 UnionBase Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.UnionBase

Methods

liftKeyHashWithSalt :: (Int -> a -> Int) -> Int -> UnionBase a -> Int Source #

newtype AsKey a Source #

Use a term as a key with identity equality.

For example, AsKey SymBool uses the term identity for SymBool.

Constructors

AsKey 

Fields

Instances

Instances details
Functor AsKey Source # 
Instance details

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

Methods

fmap :: (a -> b) -> AsKey a -> AsKey b #

(<$) :: a -> AsKey b -> AsKey a #

SafeBitCast e a b m => SafeBitCast e a (AsKey b) m Source # 
Instance details

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

Methods

safeBitCast :: a -> m (AsKey b) Source #

BitCast a b => BitCast a (AsKey b) Source # 
Instance details

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

Methods

bitCast :: a -> AsKey b Source #

BitCastCanonical a b => BitCastCanonical a (AsKey b) Source # 
Instance details

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

Methods

bitCastCanonicalValue :: proxy a -> AsKey b Source #

BitCastOr a b => BitCastOr a (AsKey b) Source # 
Instance details

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

Methods

bitCastOr :: AsKey b -> a -> AsKey b Source #

GenSym a b => GenSym a (AsKey b) Source # 
Instance details

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

Methods

fresh :: MonadFresh m => a -> m (Union (AsKey b)) Source #

GenSymSimple a b => GenSymSimple a (AsKey b) Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => a -> m (AsKey b) Source #

Solvable c s => Solvable c (AsKey s) Source # 
Instance details

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

SymFromIntegral a b => SymFromIntegral a (AsKey b) Source # 
Instance details

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

Methods

symFromIntegral :: a -> AsKey b Source #

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

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

Methods

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

ToSym a b => ToSym a (AsKey b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym

Methods

toSym :: a -> AsKey b Source #

Lift a => Lift (AsKey a :: Type) Source # 
Instance details

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

Methods

lift :: Quote m => AsKey a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => AsKey a -> Code m (AsKey a) #

SafeFdiv e a m => SafeFdiv e (AsKey a) m Source # 
Instance details

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

Methods

safeFdiv :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeRecip :: AsKey a -> m (AsKey a) Source #

SafeLinearArith e a m => SafeLinearArith e (AsKey a) m Source # 
Instance details

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

Methods

safeAdd :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeNeg :: AsKey a -> m (AsKey a) Source #

safeSub :: AsKey a -> AsKey a -> m (AsKey a) Source #

SafeLogBase e a m => SafeLogBase e (AsKey a) m Source # 
Instance details

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

Methods

safeLogBase :: AsKey a -> AsKey a -> m (AsKey a) Source #

SafeDiv e a m => SafeDiv e (AsKey a) m Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv

Methods

safeDiv :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeMod :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeDivMod :: AsKey a -> AsKey a -> m (AsKey a, AsKey a) Source #

safeQuot :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeRem :: AsKey a -> AsKey a -> m (AsKey a) Source #

safeQuotRem :: AsKey a -> AsKey a -> m (AsKey a, AsKey a) Source #

SafeBitCast e a b m => SafeBitCast e (AsKey a) b m Source # 
Instance details

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

Methods

safeBitCast :: AsKey a -> m b Source #

IEEEFPConvertible a fp mode => IEEEFPConvertible a (AsKey fp) (AsKey mode) Source # 
Instance details

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

Methods

fromFPOr :: a -> AsKey mode -> AsKey fp -> a Source #

toFP :: AsKey mode -> a -> AsKey fp Source #

IEEEFPToAlgReal a fp mode => IEEEFPToAlgReal a (AsKey fp) (AsKey mode) Source # 
Instance details

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

Methods

fpToAlgReal :: a -> AsKey fp -> a Source #

SafeBitCast e a b m => SafeBitCast e (AsKey a) (AsKey b) m Source # 
Instance details

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

Methods

safeBitCast :: AsKey a -> m (AsKey b) Source #

Binary a => Binary (AsKey a) Source # 
Instance details

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

Methods

put :: AsKey a -> Put #

get :: Get (AsKey a) #

putList :: [AsKey a] -> Put #

Serial a => Serial (AsKey a) Source # 
Instance details

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

Methods

serialize :: MonadPut m => AsKey a -> m () #

deserialize :: MonadGet m => m (AsKey a) #

Serialize a => Serialize (AsKey a) Source # 
Instance details

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

Methods

put :: Putter (AsKey a) #

get :: Get (AsKey a) #

NFData a => NFData (AsKey a) Source # 
Instance details

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

Methods

rnf :: AsKey a -> () #

(KeyEq a, Bits a) => Bits (AsKey a) Source # 
Instance details

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

Methods

(.&.) :: AsKey a -> AsKey a -> AsKey a #

(.|.) :: AsKey a -> AsKey a -> AsKey a #

xor :: AsKey a -> AsKey a -> AsKey a #

complement :: AsKey a -> AsKey a #

shift :: AsKey a -> Int -> AsKey a #

rotate :: AsKey a -> Int -> AsKey a #

zeroBits :: AsKey a #

bit :: Int -> AsKey a #

setBit :: AsKey a -> Int -> AsKey a #

clearBit :: AsKey a -> Int -> AsKey a #

complementBit :: AsKey a -> Int -> AsKey a #

testBit :: AsKey a -> Int -> Bool #

bitSizeMaybe :: AsKey a -> Maybe Int #

bitSize :: AsKey a -> Int #

isSigned :: AsKey a -> Bool #

shiftL :: AsKey a -> Int -> AsKey a #

unsafeShiftL :: AsKey a -> Int -> AsKey a #

shiftR :: AsKey a -> Int -> AsKey a #

unsafeShiftR :: AsKey a -> Int -> AsKey a #

rotateL :: AsKey a -> Int -> AsKey a #

rotateR :: AsKey a -> Int -> AsKey a #

popCount :: AsKey a -> Int #

(KeyEq a, FiniteBits a) => FiniteBits (AsKey a) Source # 
Instance details

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

IsString a => IsString (AsKey a) Source # 
Instance details

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

Methods

fromString :: String -> AsKey a #

Bounded a => Bounded (AsKey a) Source # 
Instance details

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

Methods

minBound :: AsKey a #

maxBound :: AsKey a #

Enum a => Enum (AsKey a) Source # 
Instance details

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

Methods

succ :: AsKey a -> AsKey a #

pred :: AsKey a -> AsKey a #

toEnum :: Int -> AsKey a #

fromEnum :: AsKey a -> Int #

enumFrom :: AsKey a -> [AsKey a] #

enumFromThen :: AsKey a -> AsKey a -> [AsKey a] #

enumFromTo :: AsKey a -> AsKey a -> [AsKey a] #

enumFromThenTo :: AsKey a -> AsKey a -> AsKey a -> [AsKey a] #

Floating a => Floating (AsKey a) Source # 
Instance details

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

Methods

pi :: AsKey a #

exp :: AsKey a -> AsKey a #

log :: AsKey a -> AsKey a #

sqrt :: AsKey a -> AsKey a #

(**) :: AsKey a -> AsKey a -> AsKey a #

logBase :: AsKey a -> AsKey a -> AsKey a #

sin :: AsKey a -> AsKey a #

cos :: AsKey a -> AsKey a #

tan :: AsKey a -> AsKey a #

asin :: AsKey a -> AsKey a #

acos :: AsKey a -> AsKey a #

atan :: AsKey a -> AsKey a #

sinh :: AsKey a -> AsKey a #

cosh :: AsKey a -> AsKey a #

tanh :: AsKey a -> AsKey a #

asinh :: AsKey a -> AsKey a #

acosh :: AsKey a -> AsKey a #

atanh :: AsKey a -> AsKey a #

log1p :: AsKey a -> AsKey a #

expm1 :: AsKey a -> AsKey a #

log1pexp :: AsKey a -> AsKey a #

log1mexp :: AsKey a -> AsKey a #

Num a => Num (AsKey a) Source # 
Instance details

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

Methods

(+) :: AsKey a -> AsKey a -> AsKey a #

(-) :: AsKey a -> AsKey a -> AsKey a #

(*) :: AsKey a -> AsKey a -> AsKey a #

negate :: AsKey a -> AsKey a #

abs :: AsKey a -> AsKey a #

signum :: AsKey a -> AsKey a #

fromInteger :: Integer -> AsKey a #

Fractional a => Fractional (AsKey a) Source # 
Instance details

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

Methods

(/) :: AsKey a -> AsKey a -> AsKey a #

recip :: AsKey a -> AsKey a #

fromRational :: Rational -> AsKey a #

Show a => Show (AsKey a) Source # 
Instance details

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

Methods

showsPrec :: Int -> AsKey a -> ShowS #

show :: AsKey a -> String #

showList :: [AsKey a] -> ShowS #

KeyEq a => Eq (AsKey a) Source # 
Instance details

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

Methods

(==) :: AsKey a -> AsKey a -> Bool #

(/=) :: AsKey a -> AsKey a -> Bool #

KeyOrd a => Ord (AsKey a) Source # 
Instance details

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

Methods

compare :: AsKey a -> AsKey a -> Ordering #

(<) :: AsKey a -> AsKey a -> Bool #

(<=) :: AsKey a -> AsKey a -> Bool #

(>) :: AsKey a -> AsKey a -> Bool #

(>=) :: AsKey a -> AsKey a -> Bool #

max :: AsKey a -> AsKey a -> AsKey a #

min :: AsKey a -> AsKey a -> AsKey a #

BV a => BV (AsKey a) Source # 
Instance details

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

Methods

bvConcat :: AsKey a -> AsKey a -> AsKey a Source #

bvZext :: Int -> AsKey a -> AsKey a Source #

bvSext :: Int -> AsKey a -> AsKey a Source #

bvExt :: Int -> AsKey a -> AsKey a Source #

bvSelect :: Int -> Int -> AsKey a -> AsKey a Source #

bv :: Integral a0 => Int -> a0 -> AsKey a Source #

Concrete (AsKey a) Source # 
Instance details

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

Apply a => Apply (AsKey a) Source # 
Instance details

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

Associated Types

type FunType (AsKey a) 
Instance details

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

type FunType (AsKey a) = FunType a

Methods

apply :: AsKey a -> FunType (AsKey a) Source #

IEEEFPConstants a => IEEEFPConstants (AsKey a) Source # 
Instance details

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

IEEEFPOp a => IEEEFPOp (AsKey a) Source # 
Instance details

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

IEEEFPRoundingMode a => IEEEFPRoundingMode (AsKey a) Source # 
Instance details

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

ITEOp a => ITEOp (AsKey a) Source # 
Instance details

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

Methods

symIte :: SymBool -> AsKey a -> AsKey a -> AsKey a Source #

LogicalOp a => LogicalOp (AsKey a) Source # 
Instance details

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

Methods

true :: AsKey a Source #

false :: AsKey a Source #

(.||) :: AsKey a -> AsKey a -> AsKey a Source #

(.&&) :: AsKey a -> AsKey a -> AsKey a Source #

symNot :: AsKey a -> AsKey a Source #

symXor :: AsKey a -> AsKey a -> AsKey a Source #

symImplies :: AsKey a -> AsKey a -> AsKey a Source #

FdivOr a => FdivOr (AsKey a) Source # 
Instance details

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

Methods

fdivOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

recipOr :: AsKey a -> AsKey a -> AsKey a Source #

LogBaseOr a => LogBaseOr (AsKey a) Source # 
Instance details

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

Methods

logBaseOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

SymIEEEFPTraits a => SymIEEEFPTraits (AsKey a) Source # 
Instance details

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

EvalSym a => EvalSym (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym

Methods

evalSym :: Bool -> Model -> AsKey a -> AsKey a Source #

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

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

Mergeable a => Mergeable (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

PPrint a => PPrint (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: AsKey a -> Doc ann Source #

pformatPrec :: Int -> AsKey a -> Doc ann Source #

pformatList :: [AsKey a] -> Doc ann Source #

DivOr a => DivOr (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv

Methods

divOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

modOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

divModOr :: (AsKey a, AsKey a) -> AsKey a -> AsKey a -> (AsKey a, AsKey a) Source #

quotOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

remOr :: AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

quotRemOr :: (AsKey a, AsKey a) -> AsKey a -> AsKey a -> (AsKey a, AsKey a) Source #

SimpleMergeable a => SimpleMergeable (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> AsKey a -> AsKey a -> AsKey a Source #

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

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

Methods

substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> AsKey a -> AsKey a Source #

SymEq a => SymEq (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq

SymOrd a => SymOrd (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd

AllSyms a => AllSyms (AsKey a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

allSymsS :: AsKey a -> [SomeSym] -> [SomeSym] Source #

allSyms :: AsKey a -> [SomeSym] Source #

ConRep a => ConRep (AsKey a) Source # 
Instance details

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

Associated Types

type ConType (AsKey a) 
Instance details

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

type ConType (AsKey a) = ConType a
KeyHashable a => Hashable (AsKey a) Source # 
Instance details

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

Methods

hashWithSalt :: Int -> AsKey a -> Int #

hash :: AsKey a -> Int #

BitCast a b => BitCast (AsKey a) b Source # 
Instance details

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

Methods

bitCast :: AsKey a -> b Source #

BitCastCanonical a b => BitCastCanonical (AsKey a) b Source # 
Instance details

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

Methods

bitCastCanonicalValue :: proxy (AsKey a) -> b Source #

BitCastOr a b => BitCastOr (AsKey a) b Source # 
Instance details

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

Methods

bitCastOr :: b -> AsKey a -> b Source #

GenSym a b => GenSym (AsKey a) b Source # 
Instance details

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

Methods

fresh :: MonadFresh m => AsKey a -> m (Union b) Source #

GenSymSimple a b => GenSymSimple (AsKey a) b Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => AsKey a -> m b Source #

SymFromIntegral a b => SymFromIntegral (AsKey a) b Source # 
Instance details

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

Methods

symFromIntegral :: AsKey a -> b Source #

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

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

Methods

toCon :: AsKey a -> Maybe b Source #

ToSym a b => ToSym (AsKey a) b Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym

Methods

toSym :: AsKey a -> b Source #

Function a arg res => Function (AsKey a) arg res Source # 
Instance details

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

Methods

(#) :: AsKey a -> arg -> res Source #

IEEEFPConvertible a fp mode => IEEEFPConvertible (AsKey a) fp mode Source # 
Instance details

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

Methods

fromFPOr :: AsKey a -> mode -> fp -> AsKey a Source #

toFP :: mode -> AsKey a -> fp Source #

IEEEFPToAlgReal a fp mode => IEEEFPToAlgReal (AsKey a) fp mode Source # 
Instance details

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

Methods

fpToAlgReal :: AsKey a -> fp -> AsKey a Source #

BitCast a b => BitCast (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

bitCast :: AsKey a -> AsKey b Source #

BitCastCanonical a b => BitCastCanonical (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

bitCastCanonicalValue :: proxy (AsKey a) -> AsKey b Source #

BitCastOr a b => BitCastOr (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

bitCastOr :: AsKey b -> AsKey a -> AsKey b Source #

GenSym a b => GenSym (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

fresh :: MonadFresh m => AsKey a -> m (Union (AsKey b)) Source #

GenSymSimple a b => GenSymSimple (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => AsKey a -> m (AsKey b) Source #

IEEEFPRoundingOp a mode => IEEEFPRoundingOp (AsKey a) (AsKey mode) Source # 
Instance details

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

Methods

fpAdd :: AsKey mode -> AsKey a -> AsKey a -> AsKey a Source #

fpSub :: AsKey mode -> AsKey a -> AsKey a -> AsKey a Source #

fpMul :: AsKey mode -> AsKey a -> AsKey a -> AsKey a Source #

fpDiv :: AsKey mode -> AsKey a -> AsKey a -> AsKey a Source #

fpFMA :: AsKey mode -> AsKey a -> AsKey a -> AsKey a -> AsKey a Source #

fpSqrt :: AsKey mode -> AsKey a -> AsKey a Source #

fpRoundToIntegral :: AsKey mode -> AsKey a -> AsKey a Source #

SignConversion a b => SignConversion (AsKey a) (AsKey b) Source # 
Instance details

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

Methods

toSigned :: AsKey a -> AsKey b Source #

toUnsigned :: AsKey b -> AsKey a Source #

SymFromIntegral a b => SymFromIntegral (AsKey a) (AsKey b) Source # 
Instance details

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

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

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

Methods

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

ToSym a b => ToSym (AsKey a) (AsKey b) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym

Methods

toSym :: AsKey a -> AsKey b Source #

IEEEFPConvertible a fp mode => IEEEFPConvertible (AsKey a) (AsKey fp) (AsKey mode) Source # 
Instance details

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

Methods

fromFPOr :: AsKey a -> AsKey mode -> AsKey fp -> AsKey a Source #

toFP :: AsKey mode -> AsKey a -> AsKey fp Source #

IEEEFPToAlgReal a fp mode => IEEEFPToAlgReal (AsKey a) (AsKey fp) (AsKey mode) Source # 
Instance details

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

Methods

fpToAlgReal :: AsKey a -> AsKey fp -> AsKey a Source #

type FunType (AsKey a) Source # 
Instance details

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

type FunType (AsKey a) = FunType a
type ConType (AsKey a) Source # 
Instance details

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

type ConType (AsKey a) = ConType a

newtype AsKey1 (f :: Type -> Type) a Source #

Use a union as a key with identity equality.

For example, AsKey1 Union uses the term identity for Union.

Constructors

AsKey1 

Fields

Instances

Instances details
GenSym a (f b) => GenSym a (AsKey1 f b) Source # 
Instance details

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

Methods

fresh :: MonadFresh m => a -> m (Union (AsKey1 f b)) Source #

GenSymSimple a (f b) => GenSymSimple a (AsKey1 f b) Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => a -> m (AsKey1 f b) Source #

Solvable c (f s) => Solvable c (AsKey1 f s) Source # 
Instance details

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

Methods

con :: c -> AsKey1 f s Source #

conView :: AsKey1 f s -> Maybe c Source #

sym :: Symbol -> AsKey1 f s Source #

ssym :: Identifier -> AsKey1 f s Source #

isym :: Identifier -> Int -> AsKey1 f s Source #

ToCon a (f b) => ToCon a (AsKey1 f b) Source # 
Instance details

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

Methods

toCon :: a -> Maybe (AsKey1 f b) Source #

Lift (f a) => Lift (AsKey1 f a :: Type) Source # 
Instance details

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

Methods

lift :: Quote m => AsKey1 f a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => AsKey1 f a -> Code m (AsKey1 f a) #

KeyEq1 f => Eq1 (AsKey1 f) Source # 
Instance details

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

Methods

liftEq :: (a -> b -> Bool) -> AsKey1 f a -> AsKey1 f b -> Bool #

KeyOrd1 f => Ord1 (AsKey1 f) Source # 
Instance details

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

Methods

liftCompare :: (a -> b -> Ordering) -> AsKey1 f a -> AsKey1 f b -> Ordering #

Show1 f => Show1 (AsKey1 f) Source # 
Instance details

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

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> AsKey1 f a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [AsKey1 f a] -> ShowS #

NFData1 f => NFData1 (AsKey1 f) Source # 
Instance details

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

Methods

liftRnf :: (a -> ()) -> AsKey1 f a -> () #

Applicative f => Applicative (AsKey1 f) Source # 
Instance details

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

Methods

pure :: a -> AsKey1 f a #

(<*>) :: AsKey1 f (a -> b) -> AsKey1 f a -> AsKey1 f b #

liftA2 :: (a -> b -> c) -> AsKey1 f a -> AsKey1 f b -> AsKey1 f c #

(*>) :: AsKey1 f a -> AsKey1 f b -> AsKey1 f b #

(<*) :: AsKey1 f a -> AsKey1 f b -> AsKey1 f a #

Functor f => Functor (AsKey1 f) Source # 
Instance details

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

Methods

fmap :: (a -> b) -> AsKey1 f a -> AsKey1 f b #

(<$) :: a -> AsKey1 f b -> AsKey1 f a #

Monad f => Monad (AsKey1 f) Source # 
Instance details

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

Methods

(>>=) :: AsKey1 f a -> (a -> AsKey1 f b) -> AsKey1 f b #

(>>) :: AsKey1 f a -> AsKey1 f b -> AsKey1 f b #

return :: a -> AsKey1 f a #

UnionView u => UnionView (AsKey1 u) Source # 
Instance details

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

EvalSym1 a => EvalSym1 (AsKey1 a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym

Methods

liftEvalSym :: (Bool -> Model -> a0 -> a0) -> Bool -> Model -> AsKey1 a a0 -> AsKey1 a a0 Source #

ExtractSym1 a => ExtractSym1 (AsKey1 a) Source # 
Instance details

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

Methods

liftExtractSymMaybe :: forall (knd :: SymbolKind) a0. IsSymbolKind knd => (a0 -> Maybe (SymbolSet knd)) -> AsKey1 a a0 -> Maybe (SymbolSet knd) Source #

Mergeable1 f => Mergeable1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

PPrint1 f => PPrint1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

liftPFormatPrec :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> Int -> AsKey1 f a -> Doc ann Source #

liftPFormatList :: (Int -> a -> Doc ann) -> ([a] -> Doc ann) -> [AsKey1 f a] -> Doc ann Source #

SimpleMergeable1 f => SimpleMergeable1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

Methods

liftMrgIte :: (SymBool -> a -> a -> a) -> SymBool -> AsKey1 f a -> AsKey1 f a -> AsKey1 f a Source #

SymBranching f => SymBranching (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

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

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

Methods

liftSubstSym :: forall cb sb (knd :: SymbolKind) a. (LinkedRep cb sb, IsSymbolKind knd) => (TypedSymbol knd cb -> sb -> a -> a) -> TypedSymbol knd cb -> sb -> AsKey1 f a -> AsKey1 f a Source #

SymEq1 f => SymEq1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq

Methods

liftSymEq :: (a -> b -> SymBool) -> AsKey1 f a -> AsKey1 f b -> SymBool Source #

SymOrd1 f => SymOrd1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> AsKey1 f a -> AsKey1 f b -> Union Ordering Source #

TryMerge m => TryMerge (AsKey1 m) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.TryMerge

AllSyms1 f => AllSyms1 (AsKey1 f) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

liftAllSymsS :: (a -> [SomeSym] -> [SomeSym]) -> AsKey1 f a -> [SomeSym] -> [SomeSym] Source #

KeyHashable1 f => Hashable1 (AsKey1 f) Source # 
Instance details

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

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> AsKey1 f a -> Int #

Binary (f a) => Binary (AsKey1 f a) Source # 
Instance details

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

Methods

put :: AsKey1 f a -> Put #

get :: Get (AsKey1 f a) #

putList :: [AsKey1 f a] -> Put #

(Serial a, Serial1 f) => Serial (AsKey1 f a) Source # 
Instance details

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

Methods

serialize :: MonadPut m => AsKey1 f a -> m () #

deserialize :: MonadGet m => m (AsKey1 f a) #

Serialize (f a) => Serialize (AsKey1 f a) Source # 
Instance details

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

Methods

put :: Putter (AsKey1 f a) #

get :: Get (AsKey1 f a) #

NFData (f a) => NFData (AsKey1 f a) Source # 
Instance details

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

Methods

rnf :: AsKey1 f a -> () #

IsString (f a) => IsString (AsKey1 f a) Source # 
Instance details

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

Methods

fromString :: String -> AsKey1 f a #

Num (f a) => Num (AsKey1 f a) Source # 
Instance details

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

Methods

(+) :: AsKey1 f a -> AsKey1 f a -> AsKey1 f a #

(-) :: AsKey1 f a -> AsKey1 f a -> AsKey1 f a #

(*) :: AsKey1 f a -> AsKey1 f a -> AsKey1 f a #

negate :: AsKey1 f a -> AsKey1 f a #

abs :: AsKey1 f a -> AsKey1 f a #

signum :: AsKey1 f a -> AsKey1 f a #

fromInteger :: Integer -> AsKey1 f a #

Show (f a) => Show (AsKey1 f a) Source # 
Instance details

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

Methods

showsPrec :: Int -> AsKey1 f a -> ShowS #

show :: AsKey1 f a -> String #

showList :: [AsKey1 f a] -> ShowS #

(KeyEq1 f, Eq a) => Eq (AsKey1 f a) Source # 
Instance details

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

Methods

(==) :: AsKey1 f a -> AsKey1 f a -> Bool #

(/=) :: AsKey1 f a -> AsKey1 f a -> Bool #

(KeyOrd1 f, Ord a) => Ord (AsKey1 f a) Source # 
Instance details

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

Methods

compare :: AsKey1 f a -> AsKey1 f a -> Ordering #

(<) :: AsKey1 f a -> AsKey1 f a -> Bool #

(<=) :: AsKey1 f a -> AsKey1 f a -> Bool #

(>) :: AsKey1 f a -> AsKey1 f a -> Bool #

(>=) :: AsKey1 f a -> AsKey1 f a -> Bool #

max :: AsKey1 f a -> AsKey1 f a -> AsKey1 f a #

min :: AsKey1 f a -> AsKey1 f a -> AsKey1 f a #

(EvalSym1 f, EvalSym a) => EvalSym (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym

Methods

evalSym :: Bool -> Model -> AsKey1 f a -> AsKey1 f a Source #

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

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

Methods

extractSym :: AsKey1 f a -> AnySymbolSet Source #

extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => AsKey1 f a -> Maybe (SymbolSet knd) Source #

Mergeable (f a) => Mergeable (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable

(PPrint1 f, PPrint a) => PPrint (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: AsKey1 f a -> Doc ann Source #

pformatPrec :: Int -> AsKey1 f a -> Doc ann Source #

pformatList :: [AsKey1 f a] -> Doc ann Source #

SimpleMergeable (f a) => SimpleMergeable (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> AsKey1 f a -> AsKey1 f a -> AsKey1 f a Source #

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

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

Methods

substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> AsKey1 f a -> AsKey1 f a Source #

(SymEq1 f, SymEq a) => SymEq (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq

Methods

(.==) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

(./=) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

symDistinct :: [AsKey1 f a] -> SymBool Source #

(SymOrd1 f, SymOrd a) => SymOrd (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd

Methods

(.<) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

(.<=) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

(.>) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

(.>=) :: AsKey1 f a -> AsKey1 f a -> SymBool Source #

symCompare :: AsKey1 f a -> AsKey1 f a -> Union Ordering Source #

(AllSyms1 f, AllSyms a) => AllSyms (AsKey1 f a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.SymPrim.AllSyms

Methods

allSymsS :: AsKey1 f a -> [SomeSym] -> [SomeSym] Source #

allSyms :: AsKey1 f a -> [SomeSym] Source #

(KeyHashable1 f, Hashable a) => Hashable (AsKey1 f a) Source # 
Instance details

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

Methods

hashWithSalt :: Int -> AsKey1 f a -> Int #

hash :: AsKey1 f a -> Int #

GenSym (f a) b => GenSym (AsKey1 f a) b Source # 
Instance details

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

Methods

fresh :: MonadFresh m => AsKey1 f a -> m (Union b) Source #

GenSymSimple (f a) b => GenSymSimple (AsKey1 f a) b Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => AsKey1 f a -> m b Source #

ToCon (f a) b => ToCon (AsKey1 f a) b Source # 
Instance details

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

Methods

toCon :: AsKey1 f a -> Maybe b Source #

Function (f a) arg (f res) => Function (AsKey1 f a) arg (AsKey1 f res) Source # 
Instance details

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

Methods

(#) :: AsKey1 f a -> arg -> AsKey1 f res Source #

GenSym (f a) (f b) => GenSym (AsKey1 f a) (AsKey1 f b) Source # 
Instance details

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

Methods

fresh :: MonadFresh m => AsKey1 f a -> m (Union (AsKey1 f b)) Source #

GenSymSimple (f a) (f b) => GenSymSimple (AsKey1 f a) (AsKey1 f b) Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => AsKey1 f a -> m (AsKey1 f b) Source #

ToCon (f a) (f b) => ToCon (AsKey1 f a) (AsKey1 f b) Source # 
Instance details

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

Methods

toCon :: AsKey1 f a -> Maybe (AsKey1 f b) Source #