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

Grisette.Internal.Core.Data.Class.SymOrd

Description

 
Synopsis

Symbolic total order relation

class SymEq a => SymOrd a where Source #

Symbolic total order. Note that we can't use Haskell's Ord class since symbolic comparison won't necessarily return a concrete Bool or Ordering value.

>>> let a = 1 :: SymInteger
>>> let b = 2 :: SymInteger
>>> a .< b
true
>>> a .> b
false
>>> let a = "a" :: SymInteger
>>> let b = "b" :: SymInteger
>>> a .< b
(< a b)
>>> a .<= b
(<= a b)
>>> a .> b
(< b a)
>>> a .>= b
(<= b a)

For symCompare, Ordering is not a solvable type, and the result would be wrapped in a union-like monad. See Union and PlainUnion for more information.

>>> a `symCompare` b :: Union Ordering
{If (< a b) LT (If (= a b) EQ GT)}

Note: This type class can be derived for algebraic data types. You may need the DerivingVia and DerivingStrategies extensions.

data X = ... deriving Generic deriving SymOrd via (Default X)

Minimal complete definition

(.<) | symCompare

Methods

(.<) :: a -> a -> SymBool infix 4 Source #

(.<=) :: a -> a -> SymBool infix 4 Source #

(.>) :: a -> a -> SymBool infix 4 Source #

(.>=) :: a -> a -> SymBool infix 4 Source #

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

Instances

Instances details
SymOrd All Source # 
Instance details

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

SymOrd Any Source # 
Instance details

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

SymOrd Int16 Source # 
Instance details

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

SymOrd Int32 Source # 
Instance details

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

SymOrd Int64 Source # 
Instance details

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

SymOrd Int8 Source # 
Instance details

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

SymOrd Word16 Source # 
Instance details

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

SymOrd Word32 Source # 
Instance details

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

SymOrd Word64 Source # 
Instance details

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

SymOrd Word8 Source # 
Instance details

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

SymOrd ByteString Source # 
Instance details

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

SymOrd Ordering Source # 
Instance details

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

SymOrd AssertionError Source # 
Instance details

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

SymOrd VerificationConditions Source # 
Instance details

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

SymOrd AlgReal Source # 
Instance details

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

SymOrd FPRoundingMode Source # 
Instance details

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

SymOrd NotRepresentableFPError Source # 
Instance details

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

SymOrd SomeBVException Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

SymOrd SymAlgReal Source # 
Instance details

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

SymOrd SymBool Source # 
Instance details

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

SymOrd SymFPRoundingMode Source # 
Instance details

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

SymOrd SymInteger Source # 
Instance details

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

SymOrd Text Source # 
Instance details

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

SymOrd Integer Source # 
Instance details

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

SymOrd () Source # 
Instance details

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

Methods

(.<) :: () -> () -> SymBool Source #

(.<=) :: () -> () -> SymBool Source #

(.>) :: () -> () -> SymBool Source #

(.>=) :: () -> () -> SymBool Source #

symCompare :: () -> () -> Union Ordering Source #

SymOrd Bool Source # 
Instance details

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

SymOrd Char Source # 
Instance details

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

SymOrd Double Source # 
Instance details

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

SymOrd Float Source # 
Instance details

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

SymOrd Int Source # 
Instance details

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

SymOrd Word Source # 
Instance details

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

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

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

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

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

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

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

Methods

(.<) :: Last a -> Last a -> SymBool Source #

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

(.>) :: Last a -> Last a -> SymBool Source #

(.>=) :: Last a -> Last a -> SymBool Source #

symCompare :: Last a -> Last a -> Union Ordering Source #

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

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

Methods

(.<) :: Down a -> Down a -> SymBool Source #

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

(.>) :: Down a -> Down a -> SymBool Source #

(.>=) :: Down a -> Down a -> SymBool Source #

symCompare :: Down a -> Down a -> Union Ordering Source #

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

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

Methods

(.<) :: Dual a -> Dual a -> SymBool Source #

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

(.>) :: Dual a -> Dual a -> SymBool Source #

(.>=) :: Dual a -> Dual a -> SymBool Source #

symCompare :: Dual a -> Dual a -> Union Ordering Source #

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

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

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

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

Methods

(.<) :: Sum a -> Sum a -> SymBool Source #

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

(.>) :: Sum a -> Sum a -> SymBool Source #

(.>=) :: Sum a -> Sum a -> SymBool Source #

symCompare :: Sum a -> Sum a -> Union Ordering Source #

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

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

Methods

(.<) :: Par1 p -> Par1 p -> SymBool Source #

(.<=) :: Par1 p -> Par1 p -> SymBool Source #

(.>) :: Par1 p -> Par1 p -> SymBool Source #

(.>=) :: Par1 p -> Par1 p -> SymBool Source #

symCompare :: Par1 p -> Par1 p -> Union Ordering Source #

(SymOrd a, Integral a) => SymOrd (Ratio a) Source # 
Instance details

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

(Generic a, GSymOrd Arity0 (Rep a), GSymEq Arity0 (Rep a)) => SymOrd (Default a) Source # 
Instance details

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

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

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

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

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

Methods

(.<) :: IntN n -> IntN n -> SymBool Source #

(.<=) :: IntN n -> IntN n -> SymBool Source #

(.>) :: IntN n -> IntN n -> SymBool Source #

(.>=) :: IntN n -> IntN n -> SymBool Source #

symCompare :: IntN n -> IntN n -> Union Ordering Source #

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

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

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

Defined in Grisette.Internal.SymPrim.SomeBV

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

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

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

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

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

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

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

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

Methods

(.<) :: [a] -> [a] -> SymBool Source #

(.<=) :: [a] -> [a] -> SymBool Source #

(.>) :: [a] -> [a] -> SymBool Source #

(.>=) :: [a] -> [a] -> SymBool Source #

symCompare :: [a] -> [a] -> Union Ordering Source #

(SymOrd a1, SymOrd a2) => SymOrd (Either a1 a2) Source # 
Instance details

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

Methods

(.<) :: Either a1 a2 -> Either a1 a2 -> SymBool Source #

(.<=) :: Either a1 a2 -> Either a1 a2 -> SymBool Source #

(.>) :: Either a1 a2 -> Either a1 a2 -> SymBool Source #

(.>=) :: Either a1 a2 -> Either a1 a2 -> SymBool Source #

symCompare :: Either a1 a2 -> Either a1 a2 -> Union Ordering Source #

SymOrd (Proxy a) Source # 
Instance details

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

SymOrd (U1 p) Source # 
Instance details

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

Methods

(.<) :: U1 p -> U1 p -> SymBool Source #

(.<=) :: U1 p -> U1 p -> SymBool Source #

(.>) :: U1 p -> U1 p -> SymBool Source #

(.>=) :: U1 p -> U1 p -> SymBool Source #

symCompare :: U1 p -> U1 p -> Union Ordering Source #

SymOrd (V1 p) Source # 
Instance details

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

Methods

(.<) :: V1 p -> V1 p -> SymBool Source #

(.<=) :: V1 p -> V1 p -> SymBool Source #

(.>) :: V1 p -> V1 p -> SymBool Source #

(.>=) :: V1 p -> V1 p -> SymBool Source #

symCompare :: V1 p -> V1 p -> Union Ordering Source #

(Generic1 f, GSymOrd Arity1 (Rep1 f), GSymEq Arity1 (Rep1 f), SymOrd a) => SymOrd (Default1 f a) Source # 
Instance details

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

(SymOrd a, SymOrd b) => SymOrd (CBMCEither a b) Source # 
Instance details

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

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

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

Methods

(.<) :: FP eb sb -> FP eb sb -> SymBool Source #

(.<=) :: FP eb sb -> FP eb sb -> SymBool Source #

(.>) :: FP eb sb -> FP eb sb -> SymBool Source #

(.>=) :: FP eb sb -> FP eb sb -> SymBool Source #

symCompare :: FP eb sb -> FP eb sb -> Union Ordering Source #

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

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

Methods

(.<) :: SymFP eb sb -> SymFP eb sb -> SymBool Source #

(.<=) :: SymFP eb sb -> SymFP eb sb -> SymBool Source #

(.>) :: SymFP eb sb -> SymFP eb sb -> SymBool Source #

(.>=) :: SymFP eb sb -> SymFP eb sb -> SymBool Source #

symCompare :: SymFP eb sb -> SymFP eb sb -> Union Ordering Source #

(SymOrd1 a1, SymOrd a2) => SymOrd (MaybeT a1 a2) Source # 
Instance details

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

Methods

(.<) :: MaybeT a1 a2 -> MaybeT a1 a2 -> SymBool Source #

(.<=) :: MaybeT a1 a2 -> MaybeT a1 a2 -> SymBool Source #

(.>) :: MaybeT a1 a2 -> MaybeT a1 a2 -> SymBool Source #

(.>=) :: MaybeT a1 a2 -> MaybeT a1 a2 -> SymBool Source #

symCompare :: MaybeT a1 a2 -> MaybeT a1 a2 -> Union Ordering Source #

(SymOrd a1, SymOrd a2) => SymOrd (a1, a2) Source # 
Instance details

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

Methods

(.<) :: (a1, a2) -> (a1, a2) -> SymBool Source #

(.<=) :: (a1, a2) -> (a1, a2) -> SymBool Source #

(.>) :: (a1, a2) -> (a1, a2) -> SymBool Source #

(.>=) :: (a1, a2) -> (a1, a2) -> SymBool Source #

symCompare :: (a1, a2) -> (a1, a2) -> Union Ordering Source #

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

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

Methods

(.<) :: Const a b -> Const a b -> SymBool Source #

(.<=) :: Const a b -> Const a b -> SymBool Source #

(.>) :: Const a b -> Const a b -> SymBool Source #

(.>=) :: Const a b -> Const a b -> SymBool Source #

symCompare :: Const a b -> Const a b -> Union Ordering Source #

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

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

Methods

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

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

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

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

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

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

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

Methods

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

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

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

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

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

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

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

Methods

(.<) :: Rec1 f p -> Rec1 f p -> SymBool Source #

(.<=) :: Rec1 f p -> Rec1 f p -> SymBool Source #

(.>) :: Rec1 f p -> Rec1 f p -> SymBool Source #

(.>=) :: Rec1 f p -> Rec1 f p -> SymBool Source #

symCompare :: Rec1 f p -> Rec1 f p -> Union Ordering Source #

SymOrd (m (CBMCEither e a)) => SymOrd (CBMCExceptT e m a) Source # 
Instance details

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

(SymOrd a1, SymOrd1 a2, SymOrd a3) => SymOrd (ExceptT a1 a2 a3) Source # 
Instance details

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

Methods

(.<) :: ExceptT a1 a2 a3 -> ExceptT a1 a2 a3 -> SymBool Source #

(.<=) :: ExceptT a1 a2 a3 -> ExceptT a1 a2 a3 -> SymBool Source #

(.>) :: ExceptT a1 a2 a3 -> ExceptT a1 a2 a3 -> SymBool Source #

(.>=) :: ExceptT a1 a2 a3 -> ExceptT a1 a2 a3 -> SymBool Source #

symCompare :: ExceptT a1 a2 a3 -> ExceptT a1 a2 a3 -> Union Ordering Source #

(SymOrd1 m, SymOrd a) => SymOrd (IdentityT m a) Source # 
Instance details

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

(SymOrd a1, SymOrd1 a2, SymOrd a3) => SymOrd (WriterT a1 a2 a3) Source # 
Instance details

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

Methods

(.<) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.<=) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.>) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.>=) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

symCompare :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> Union Ordering Source #

(SymOrd a1, SymOrd1 a2, SymOrd a3) => SymOrd (WriterT a1 a2 a3) Source # 
Instance details

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

Methods

(.<) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.<=) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.>) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

(.>=) :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> SymBool Source #

symCompare :: WriterT a1 a2 a3 -> WriterT a1 a2 a3 -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3) => SymOrd (a1, a2, a3) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3) -> (a1, a2, a3) -> SymBool Source #

(.<=) :: (a1, a2, a3) -> (a1, a2, a3) -> SymBool Source #

(.>) :: (a1, a2, a3) -> (a1, a2, a3) -> SymBool Source #

(.>=) :: (a1, a2, a3) -> (a1, a2, a3) -> SymBool Source #

symCompare :: (a1, a2, a3) -> (a1, a2, a3) -> Union Ordering Source #

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

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

Methods

(.<) :: Product l r a -> Product l r a -> SymBool Source #

(.<=) :: Product l r a -> Product l r a -> SymBool Source #

(.>) :: Product l r a -> Product l r a -> SymBool Source #

(.>=) :: Product l r a -> Product l r a -> SymBool Source #

symCompare :: Product l r a -> Product l r a -> Union Ordering Source #

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

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

Methods

(.<) :: Sum l r a -> Sum l r a -> SymBool Source #

(.<=) :: Sum l r a -> Sum l r a -> SymBool Source #

(.>) :: Sum l r a -> Sum l r a -> SymBool Source #

(.>=) :: Sum l r a -> Sum l r a -> SymBool Source #

symCompare :: Sum l r a -> Sum l r a -> Union Ordering Source #

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

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

Methods

(.<) :: (f :*: g) p -> (f :*: g) p -> SymBool Source #

(.<=) :: (f :*: g) p -> (f :*: g) p -> SymBool Source #

(.>) :: (f :*: g) p -> (f :*: g) p -> SymBool Source #

(.>=) :: (f :*: g) p -> (f :*: g) p -> SymBool Source #

symCompare :: (f :*: g) p -> (f :*: g) p -> Union Ordering Source #

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

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

Methods

(.<) :: (f :+: g) p -> (f :+: g) p -> SymBool Source #

(.<=) :: (f :+: g) p -> (f :+: g) p -> SymBool Source #

(.>) :: (f :+: g) p -> (f :+: g) p -> SymBool Source #

(.>=) :: (f :+: g) p -> (f :+: g) p -> SymBool Source #

symCompare :: (f :+: g) p -> (f :+: g) p -> Union Ordering Source #

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

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

Methods

(.<) :: K1 i c p -> K1 i c p -> SymBool Source #

(.<=) :: K1 i c p -> K1 i c p -> SymBool Source #

(.>) :: K1 i c p -> K1 i c p -> SymBool Source #

(.>=) :: K1 i c p -> K1 i c p -> SymBool Source #

symCompare :: K1 i c p -> K1 i c p -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4) => SymOrd (a1, a2, a3, a4) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4) -> (a1, a2, a3, a4) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4) -> (a1, a2, a3, a4) -> SymBool Source #

(.>) :: (a1, a2, a3, a4) -> (a1, a2, a3, a4) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4) -> (a1, a2, a3, a4) -> SymBool Source #

symCompare :: (a1, a2, a3, a4) -> (a1, a2, a3, a4) -> Union Ordering Source #

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

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

Methods

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

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

(.>) :: Compose f g a -> Compose f g a -> SymBool Source #

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

symCompare :: Compose f g a -> Compose f g a -> Union Ordering Source #

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

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

Methods

(.<) :: (f :.: g) p -> (f :.: g) p -> SymBool Source #

(.<=) :: (f :.: g) p -> (f :.: g) p -> SymBool Source #

(.>) :: (f :.: g) p -> (f :.: g) p -> SymBool Source #

(.>=) :: (f :.: g) p -> (f :.: g) p -> SymBool Source #

symCompare :: (f :.: g) p -> (f :.: g) p -> Union Ordering Source #

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

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

Methods

(.<) :: M1 i c f p -> M1 i c f p -> SymBool Source #

(.<=) :: M1 i c f p -> M1 i c f p -> SymBool Source #

(.>) :: M1 i c f p -> M1 i c f p -> SymBool Source #

(.>=) :: M1 i c f p -> M1 i c f p -> SymBool Source #

symCompare :: M1 i c f p -> M1 i c f p -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5) => SymOrd (a1, a2, a3, a4, a5) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5) -> (a1, a2, a3, a4, a5) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5) -> (a1, a2, a3, a4, a5) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5) -> (a1, a2, a3, a4, a5) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5) -> (a1, a2, a3, a4, a5) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5) -> (a1, a2, a3, a4, a5) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6) => SymOrd (a1, a2, a3, a4, a5, a6) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6) -> (a1, a2, a3, a4, a5, a6) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6) -> (a1, a2, a3, a4, a5, a6) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6) -> (a1, a2, a3, a4, a5, a6) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6) -> (a1, a2, a3, a4, a5, a6) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6) -> (a1, a2, a3, a4, a5, a6) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7) => SymOrd (a1, a2, a3, a4, a5, a6, a7) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7) -> (a1, a2, a3, a4, a5, a6, a7) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7) -> (a1, a2, a3, a4, a5, a6, a7) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7) -> (a1, a2, a3, a4, a5, a6, a7) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7) -> (a1, a2, a3, a4, a5, a6, a7) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7) -> (a1, a2, a3, a4, a5, a6, a7) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13, SymOrd a14) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13, SymOrd a14, SymOrd a15) => SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # 
Instance details

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

Methods

(.<) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> SymBool Source #

(.<=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> SymBool Source #

(.>) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> SymBool Source #

(.>=) :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> SymBool Source #

symCompare :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> Union Ordering Source #

class (SymEq1 f, forall a. SymOrd a => SymOrd (f a)) => SymOrd1 f where Source #

Lifting of the SymOrd class to unary type constructors.

Any instance should be subject to the following law that canonicity is preserved:

liftSymCompare symCompare should be equivalent to symCompare, under the symbolic semantics.

This class therefore represents the generalization of SymOrd by decomposing its main method into a canonical lifting on a canonical inner method, so that the lifting can be reused for other arguments than the canonical one.

Methods

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

Lift a symCompare function through the type constructor.

The function will usually be applied to an symbolic comparison function, but the more general type ensures that the implementation uses it to compare elements of the first container with elements of the second.

Instances

Instances details
SymOrd1 Identity Source # 
Instance details

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

Methods

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

SymOrd1 First Source # 
Instance details

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

Methods

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

SymOrd1 Last Source # 
Instance details

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

Methods

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

SymOrd1 Down Source # 
Instance details

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

Methods

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

SymOrd1 Dual Source # 
Instance details

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

Methods

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

SymOrd1 Product Source # 
Instance details

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

Methods

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

SymOrd1 Sum Source # 
Instance details

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

Methods

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

SymOrd1 Union Source # 
Instance details

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

Methods

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

SymOrd1 Maybe Source # 
Instance details

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

Methods

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

SymOrd1 List Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> [a] -> [b] -> Union Ordering Source #

SymOrd a => SymOrd1 (Either a) Source # 
Instance details

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

Methods

liftSymCompare :: (a0 -> b -> Union Ordering) -> Either a a0 -> Either a b -> Union Ordering Source #

SymOrd1 (Proxy :: Type -> Type) Source # 
Instance details

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

Methods

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

(Generic1 f, GSymOrd Arity1 (Rep1 f), GSymEq Arity1 (Rep1 f)) => SymOrd1 (Default1 f) Source # 
Instance details

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

Methods

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

SymOrd1 a => SymOrd1 (MaybeT a) Source # 
Instance details

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

Methods

liftSymCompare :: (a0 -> b -> Union Ordering) -> MaybeT a a0 -> MaybeT a b -> Union Ordering Source #

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

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

Methods

liftSymCompare :: (a0 -> b -> Union Ordering) -> (a, a0) -> (a, b) -> Union Ordering Source #

SymOrd a => SymOrd1 (Const a :: Type -> Type) Source # 
Instance details

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

Methods

liftSymCompare :: (a0 -> b -> Union Ordering) -> Const a a0 -> Const a b -> Union Ordering Source #

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

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

Methods

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

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

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

Methods

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

(SymOrd a1, SymOrd1 a2) => SymOrd1 (ExceptT a1 a2) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> ExceptT a1 a2 a -> ExceptT a1 a2 b -> Union Ordering Source #

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

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> IdentityT m a -> IdentityT m b -> Union Ordering Source #

(SymOrd a1, SymOrd1 a2) => SymOrd1 (WriterT a1 a2) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> WriterT a1 a2 a -> WriterT a1 a2 b -> Union Ordering Source #

(SymOrd a1, SymOrd1 a2) => SymOrd1 (WriterT a1 a2) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> WriterT a1 a2 a -> WriterT a1 a2 b -> Union Ordering Source #

(SymOrd a1, SymOrd a2) => SymOrd1 ((,,) a1 a2) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a) -> (a1, a2, b) -> Union Ordering Source #

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

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> Product l r a -> Product l r b -> Union Ordering Source #

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

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> Sum l r a -> Sum l r b -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3) => SymOrd1 ((,,,) a1 a2 a3) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a) -> (a1, a2, a3, b) -> Union Ordering Source #

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

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

Methods

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

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4) => SymOrd1 ((,,,,) a1 a2 a3 a4) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a) -> (a1, a2, a3, a4, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5) => SymOrd1 ((,,,,,) a1 a2 a3 a4 a5) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a) -> (a1, a2, a3, a4, a5, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6) => SymOrd1 ((,,,,,,) a1 a2 a3 a4 a5 a6) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a) -> (a1, a2, a3, a4, a5, a6, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7) => SymOrd1 ((,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a) -> (a1, a2, a3, a4, a5, a6, a7, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8) => SymOrd1 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9) => SymOrd1 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10) => SymOrd1 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11) => SymOrd1 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12) => SymOrd1 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13) => SymOrd1 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, b) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13, SymOrd a14) => SymOrd1 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14) Source # 
Instance details

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

Methods

liftSymCompare :: (a -> b -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, b) -> Union Ordering Source #

symCompare1 :: (SymOrd1 f, SymOrd a) => f a -> f a -> Union Ordering Source #

Lift the standard symCompare function to binary type constructors.

class (SymEq2 f, forall a. SymOrd a => SymOrd1 (f a)) => SymOrd2 f where Source #

Lifting of the SymOrd class to binary type constructors.

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> f a c -> f b d -> Union Ordering Source #

Lift a symCompare function through the type constructor.

The function will usually be applied to an symbolic comparison function, but the more general type ensures that the implementation uses it to compare elements of the first container with elements of the second.

Instances

Instances details
SymOrd2 Either Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> Either a c -> Either b d -> Union Ordering Source #

SymOrd2 (,) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a, c) -> (b, d) -> Union Ordering Source #

SymOrd a => SymOrd2 ((,,) a) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a0 -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a, a0, c) -> (a, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2) => SymOrd2 ((,,,) a1 a2) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a, c) -> (a1, a2, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3) => SymOrd2 ((,,,,) a1 a2 a3) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a, c) -> (a1, a2, a3, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4) => SymOrd2 ((,,,,,) a1 a2 a3 a4) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a, c) -> (a1, a2, a3, a4, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5) => SymOrd2 ((,,,,,,) a1 a2 a3 a4 a5) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a, c) -> (a1, a2, a3, a4, a5, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6) => SymOrd2 ((,,,,,,,) a1 a2 a3 a4 a5 a6) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a, c) -> (a1, a2, a3, a4, a5, a6, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7) => SymOrd2 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a, c) -> (a1, a2, a3, a4, a5, a6, a7, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8) => SymOrd2 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9) => SymOrd2 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10) => SymOrd2 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11) => SymOrd2 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12) => SymOrd2 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, b, d) -> Union Ordering Source #

(SymOrd a1, SymOrd a2, SymOrd a3, SymOrd a4, SymOrd a5, SymOrd a6, SymOrd a7, SymOrd a8, SymOrd a9, SymOrd a10, SymOrd a11, SymOrd a12, SymOrd a13) => SymOrd2 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # 
Instance details

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

Methods

liftSymCompare2 :: (a -> b -> Union Ordering) -> (c -> d -> Union Ordering) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a, c) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, b, d) -> Union Ordering Source #

symCompare2 :: (SymOrd2 f, SymOrd a, SymOrd b) => f a b -> f a b -> Union Ordering Source #

Lift the standard symCompare function through the type constructors.

Min and max

symMax :: (SymOrd a, ITEOp a) => a -> a -> a Source #

Symbolic maximum.

symMin :: (SymOrd a, ITEOp a) => a -> a -> a Source #

Symbolic minimum.

mrgMax :: (SymOrd a, Mergeable a, SymBranching m, Applicative m) => a -> a -> m a Source #

Symbolic maximum, with a union-like monad.

mrgMin :: (SymOrd a, Mergeable a, SymBranching m, Applicative m) => a -> a -> m a Source #

Symbolic minimum, with a union-like monad.

Generic SymOrd

data family SymOrdArgs arity a b :: Type Source #

The arguments to the generic comparison function.

Instances

Instances details
data SymOrdArgs Arity0 _ _1 Source # 
Instance details

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

newtype SymOrdArgs Arity1 a b Source # 
Instance details

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

newtype SymOrdArgs Arity1 a b = SymOrdArgs1 (a -> b -> Union Ordering)

class GSymOrd arity f where Source #

The class of types that can be generically symbolically compared.

Methods

gsymCompare :: SymOrdArgs arity a b -> f a -> f b -> Union Ordering Source #

Instances

Instances details
GSymOrd Arity1 Par1 Source # 
Instance details

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

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

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

Methods

gsymCompare :: SymOrdArgs arity a b -> U1 a -> U1 b -> Union Ordering Source #

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

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

Methods

gsymCompare :: SymOrdArgs arity a b -> V1 a -> V1 b -> Union Ordering Source #

SymOrd1 f => GSymOrd Arity1 (Rec1 f) Source # 
Instance details

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

Methods

gsymCompare :: SymOrdArgs Arity1 a b -> Rec1 f a -> Rec1 f b -> Union Ordering Source #

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

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

Methods

gsymCompare :: SymOrdArgs arity a0 b0 -> (a :*: b) a0 -> (a :*: b) b0 -> Union Ordering Source #

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

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

Methods

gsymCompare :: SymOrdArgs arity a0 b0 -> (a :+: b) a0 -> (a :+: b) b0 -> Union Ordering Source #

SymOrd a => GSymOrd arity (K1 i a :: Type -> Type) Source # 
Instance details

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

Methods

gsymCompare :: SymOrdArgs arity a0 b -> K1 i a a0 -> K1 i a b -> Union Ordering Source #

(SymOrd1 f, GSymOrd Arity1 g) => GSymOrd Arity1 (f :.: g) Source # 
Instance details

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

Methods

gsymCompare :: SymOrdArgs Arity1 a b -> (f :.: g) a -> (f :.: g) b -> Union Ordering Source #

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

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

Methods

gsymCompare :: SymOrdArgs arity a0 b -> M1 i c a a0 -> M1 i c a b -> Union Ordering Source #

genericSymCompare :: (Generic a, GSymOrd Arity0 (Rep a)) => a -> a -> Union Ordering Source #

Generic symCompare function.

genericLiftSymCompare :: (Generic1 f, GSymOrd Arity1 (Rep1 f)) => (a -> b -> Union Ordering) -> f a -> f b -> Union Ordering Source #

Generic liftSymCompare function.