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

Grisette.Internal.Unified.Class.UnifiedSymOrd

Description

 
Synopsis

Documentation

class UnifiedSymOrd (mode :: EvalModeTag) a where Source #

A class that provides unified comparison.

We use this type class to help resolve the constraints for Ord and SymOrd.

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord a) (SymOrd a) => r) -> r Source #

Instances

Instances details
DecideEvalMode mode => UnifiedSymOrd mode ByteString Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord ByteString) (SymOrd ByteString) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Int16 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Int16) (SymOrd Int16) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Int32 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Int32) (SymOrd Int32) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Int64 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Int64) (SymOrd Int64) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Int8 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Int8) (SymOrd Int8) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Word16 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Word16) (SymOrd Word16) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Word32 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Word32) (SymOrd Word32) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Word64 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Word64) (SymOrd Word64) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Word8 Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Word8) (SymOrd Word8) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode AssertionError Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

DecideEvalMode mode => UnifiedSymOrd mode VerificationConditions Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

DecideEvalMode mode => UnifiedSymOrd mode FPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

DecideEvalMode mode => UnifiedSymOrd mode Text Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Text) (SymOrd Text) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Integer Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Integer) (SymOrd Integer) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode () Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord ()) (SymOrd ()) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Bool Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Bool) (SymOrd Bool) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Char Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Char) (SymOrd Char) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Double Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Double) (SymOrd Double) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Float Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Float) (SymOrd Float) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Int Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Int) (SymOrd Int) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd mode Word Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord Word) (SymOrd Word) => r) -> r Source #

(DecideEvalMode mode, If (IsConMode mode) (Ord a) (SymOrd a)) => UnifiedSymOrd mode a Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord a) (SymOrd a) => r) -> r Source #

UnifiedSymOrd 'S v => UnifiedSymOrd 'S (Union v) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode 'S) (Ord (Union v)) (SymOrd (Union v)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd mode (Identity a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (Identity a)) (SymOrd (Identity a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a, Integral a) => UnifiedSymOrd mode (Ratio a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (Ratio a)) (SymOrd (Ratio a)) => r) -> r Source #

(DecideEvalMode mode, KnownNat a, 1 <= a) => UnifiedSymOrd mode (IntN a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (IntN a)) (SymOrd (IntN a)) => r) -> r Source #

(DecideEvalMode mode, KnownNat a, 1 <= a) => UnifiedSymOrd mode (WordN a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (WordN a)) (SymOrd (WordN a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd mode (Maybe a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (Maybe a)) (SymOrd (Maybe a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd mode [a] Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord [a]) (SymOrd [a]) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2) => UnifiedSymOrd mode (Either a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (Either a1 a2)) (SymOrd (Either a1 a2)) => r) -> r Source #

(DecideEvalMode mode, ValidFP a1 a2) => UnifiedSymOrd mode (FP a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (FP a1 a2)) (SymOrd (FP a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode a1, UnifiedSymOrd mode a2) => UnifiedSymOrd mode (MaybeT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (MaybeT a1 a2)) (SymOrd (MaybeT a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2) => UnifiedSymOrd mode (a1, a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2)) (SymOrd (a1, a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2, UnifiedSymOrd mode a3) => UnifiedSymOrd mode (ExceptT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (ExceptT a1 a2 a3)) (SymOrd (ExceptT a1 a2 a3)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode m, UnifiedSymOrd mode a) => UnifiedSymOrd mode (IdentityT m a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (IdentityT m a)) (SymOrd (IdentityT m a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2, UnifiedSymOrd mode a3) => UnifiedSymOrd mode (WriterT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (WriterT a1 a2 a3)) (SymOrd (WriterT a1 a2 a3)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2, UnifiedSymOrd mode a3) => UnifiedSymOrd mode (WriterT a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (WriterT a1 a2 a3)) (SymOrd (WriterT a1 a2 a3)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2, UnifiedSymOrd mode a3) => UnifiedSymOrd mode (a1, a2, a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3)) (SymOrd (a1, a2, a3)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode f, UnifiedSymOrd1 mode g, UnifiedSymOrd mode a) => UnifiedSymOrd mode (Sum f g a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (Sum f g a)) (SymOrd (Sum f g a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2, UnifiedSymOrd mode a3, UnifiedSymOrd mode a4) => UnifiedSymOrd mode (a1, a2, a3, a4) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4)) (SymOrd (a1, a2, a3, a4)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2, UnifiedSymOrd mode a3, UnifiedSymOrd mode a4, UnifiedSymOrd mode a5) => UnifiedSymOrd mode (a1, a2, a3, a4, a5) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5)) (SymOrd (a1, a2, a3, a4, a5)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2, UnifiedSymOrd mode a3, UnifiedSymOrd mode a4, UnifiedSymOrd mode a5, UnifiedSymOrd mode a6) => UnifiedSymOrd mode (a1, a2, a3, a4, a5, a6) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6)) (SymOrd (a1, a2, a3, a4, a5, a6)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7)) (SymOrd (a1, a2, a3, a4, a5, a6, a7)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)) => r) -> r Source #

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

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd :: (If (IsConMode mode) (Ord (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)) (SymOrd (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)) => r) -> r Source #

class UnifiedSymOrd1 (mode :: EvalModeTag) (f :: Type -> Type) where Source #

A class that provides unified lifting of comparison.

We use this type class to help resolve the constraints for Ord1 and SymOrd1.

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 f) (SymOrd1 f) => r) -> r Source #

Instances

Instances details
DecideEvalMode mode => UnifiedSymOrd1 mode Identity Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 Identity) (SymOrd1 Identity) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd1 mode Maybe Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 Maybe) (SymOrd1 Maybe) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd1 mode [] Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 []) (SymOrd1 []) => r) -> r Source #

(DecideEvalMode mode, If (IsConMode mode) (Ord1 f) (SymOrd1 f), forall a. UnifiedSymOrd mode a => UnifiedSymOrd mode (f a)) => UnifiedSymOrd1 mode f Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 f) (SymOrd1 f) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd1 mode (Either a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (Either a)) (SymOrd1 (Either a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode a) => UnifiedSymOrd1 mode (MaybeT a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (MaybeT a)) (SymOrd1 (MaybeT a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd1 mode ((,) a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 ((,) a)) (SymOrd1 ((,) a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2) => UnifiedSymOrd1 mode (ExceptT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (ExceptT a1 a2)) (SymOrd1 (ExceptT a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode m) => UnifiedSymOrd1 mode (IdentityT m) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (IdentityT m)) (SymOrd1 (IdentityT m)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2) => UnifiedSymOrd1 mode (WriterT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (WriterT a1 a2)) (SymOrd1 (WriterT a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd1 mode a2) => UnifiedSymOrd1 mode (WriterT a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (WriterT a1 a2)) (SymOrd1 (WriterT a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2) => UnifiedSymOrd1 mode ((,,) a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 ((,,) a1 a2)) (SymOrd1 ((,,) a1 a2)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd1 mode f, UnifiedSymOrd1 mode g) => UnifiedSymOrd1 mode (Sum f g) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 (Sum f g)) (SymOrd1 (Sum f g)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2, UnifiedSymOrd mode a3) => UnifiedSymOrd1 mode ((,,,) a1 a2 a3) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd1 :: (If (IsConMode mode) (Ord1 ((,,,) a1 a2 a3)) (SymOrd1 ((,,,) a1 a2 a3)) => r) -> r Source #

class UnifiedSymOrd2 (mode :: EvalModeTag) (f :: Type -> Type -> Type) where Source #

A class that provides unified lifting of comparison.

We use this type class to help resolve the constraints for Ord2 and SymOrd2.

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 f) (SymOrd2 f) => r) -> r Source #

Instances

Instances details
DecideEvalMode mode => UnifiedSymOrd2 mode Either Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 Either) (SymOrd2 Either) => r) -> r Source #

DecideEvalMode mode => UnifiedSymOrd2 mode (,) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 (,)) (SymOrd2 (,)) => r) -> r Source #

(DecideEvalMode mode, If (IsConMode mode) (Ord2 f) (SymOrd2 f), forall a. UnifiedSymOrd mode a => UnifiedSymOrd1 mode (f a)) => UnifiedSymOrd2 mode f Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 f) (SymOrd2 f) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a) => UnifiedSymOrd2 mode ((,,) a) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 ((,,) a)) (SymOrd2 ((,,) a)) => r) -> r Source #

(DecideEvalMode mode, UnifiedSymOrd mode a1, UnifiedSymOrd mode a2) => UnifiedSymOrd2 mode ((,,,) a1 a2) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd

Methods

withBaseSymOrd2 :: (If (IsConMode mode) (Ord2 ((,,,) a1 a2)) (SymOrd2 ((,,,) a1 a2)) => r) -> r Source #

(.<=) :: forall (mode :: EvalModeTag) a. (DecideEvalMode mode, UnifiedSymOrd mode a) => a -> a -> GetBool mode Source #

Unified (.<=).

Note that you may sometimes need to write type annotations for the result when the mode isn't clear:

a .<= b :: GetBool mode

One example when it isn't clear is when this is used in unified mrgIf.

(.<) :: forall (mode :: EvalModeTag) a. (DecideEvalMode mode, UnifiedSymOrd mode a) => a -> a -> GetBool mode Source #

Unified (.<).

(.>=) :: forall (mode :: EvalModeTag) a. (DecideEvalMode mode, UnifiedSymOrd mode a) => a -> a -> GetBool mode Source #

Unified (.>=).

(.>) :: forall (mode :: EvalModeTag) a. (DecideEvalMode mode, UnifiedSymOrd mode a) => a -> a -> GetBool mode Source #

Unified (.>).

symCompare :: forall (mode :: EvalModeTag) a (ctx :: Type -> Type). (DecideEvalMode mode, UnifiedSymOrd mode a, Monad ctx) => a -> a -> BaseMonad mode Ordering Source #

Unified symCompare.

liftSymCompare :: forall (mode :: EvalModeTag) f a b. (DecideEvalMode mode, UnifiedSymOrd1 mode f) => (a -> b -> BaseMonad mode Ordering) -> f a -> f b -> BaseMonad mode Ordering Source #

symCompare1 :: forall (mode :: EvalModeTag) f a. (DecideEvalMode mode, UnifiedSymOrd mode a, UnifiedSymOrd1 mode f) => f a -> f a -> BaseMonad mode Ordering Source #

Unified symCompare1.

liftSymCompare2 :: forall (mode :: EvalModeTag) f a b c d. (DecideEvalMode mode, UnifiedSymOrd2 mode f) => (a -> b -> BaseMonad mode Ordering) -> (c -> d -> BaseMonad mode Ordering) -> f a c -> f b d -> BaseMonad mode Ordering Source #

symCompare2 :: forall (mode :: EvalModeTag) f a b. (DecideEvalMode mode, UnifiedSymOrd mode a, UnifiedSymOrd mode b, UnifiedSymOrd2 mode f) => f a b -> f a b -> BaseMonad mode Ordering Source #

Unified symCompare2.

symMax :: forall (mode :: EvalModeTag) a. (UnifiedSymOrd mode a, UnifiedITEOp mode a, DecideEvalMode mode) => a -> a -> a Source #

Unified symMax.

symMin :: forall (mode :: EvalModeTag) a. (UnifiedSymOrd mode a, UnifiedITEOp mode a, DecideEvalMode mode) => a -> a -> a Source #

Unified symMin.

mrgMax :: forall (mode :: EvalModeTag) a m. (UnifiedSymOrd mode a, UnifiedBranching mode m, DecideEvalMode mode, Applicative m, Mergeable a) => a -> a -> m a Source #

Unified mrgMax.

mrgMin :: forall (mode :: EvalModeTag) a m. (UnifiedSymOrd mode a, UnifiedBranching mode m, DecideEvalMode mode, Applicative m, Mergeable a) => a -> a -> m a Source #

Unified mrgMin.