grisette-0.9.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 HaskellSafe-Inferred
LanguageHaskell2010

Grisette.Unified.Internal.Class.UnifiedSymEq

Description

 
Synopsis

Documentation

class UnifiedSymEq mode a where Source #

A class that provides unified equality comparison.

We use this type class to help resolve the constraints for Eq and SymEq.

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq a) (SymEq a) => r) -> r Source #

Instances

Instances details
Typeable mode => UnifiedSymEq mode Int16 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Int16) (SymEq Int16) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Int32 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Int32) (SymEq Int32) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Int64 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Int64) (SymEq Int64) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Int8 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Int8) (SymEq Int8) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Word16 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Word16) (SymEq Word16) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Word32 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Word32) (SymEq Word32) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Word64 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Word64) (SymEq Word64) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Word8 Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Word8) (SymEq Word8) => r) -> r Source #

Typeable mode => UnifiedSymEq mode ByteString Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq ByteString) (SymEq ByteString) => r) -> r Source #

Typeable mode => UnifiedSymEq mode AssertionError Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Typeable mode => UnifiedSymEq mode VerificationConditions Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Typeable mode => UnifiedSymEq mode FPRoundingMode Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Typeable mode => UnifiedSymEq mode Text Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Text) (SymEq Text) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Integer Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Integer) (SymEq Integer) => r) -> r Source #

Typeable mode => UnifiedSymEq mode () Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq ()) (SymEq ()) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Bool Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Bool) (SymEq Bool) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Char Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Char) (SymEq Char) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Double Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Double) (SymEq Double) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Float Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Float) (SymEq Float) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Int Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Int) (SymEq Int) => r) -> r Source #

Typeable mode => UnifiedSymEq mode Word Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq Word) (SymEq Word) => r) -> r Source #

(Typeable mode, If (IsConMode mode) (Eq a) (SymEq a)) => UnifiedSymEq mode a Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq a) (SymEq a) => r) -> r Source #

UnifiedSymEq 'Sym v => UnifiedSymEq 'Sym (Union v) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode 'Sym) (Eq (Union v)) (SymEq (Union v)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq mode (Identity a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (Identity a)) (SymEq (Identity a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq mode (Ratio a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (Ratio a)) (SymEq (Ratio a)) => r) -> r Source #

(Typeable mode, KnownNat n, 1 <= n) => UnifiedSymEq mode (IntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (IntN n)) (SymEq (IntN n)) => r) -> r Source #

(Typeable mode, KnownNat n, 1 <= n) => UnifiedSymEq mode (WordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (WordN n)) (SymEq (WordN n)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq mode (Maybe a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (Maybe a)) (SymEq (Maybe a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq mode [a] Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq [a]) (SymEq [a]) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b) => UnifiedSymEq mode (Either a b) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (Either a b)) (SymEq (Either a b)) => r) -> r Source #

(Typeable mode, ValidFP eb sb) => UnifiedSymEq mode (FP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (FP eb sb)) (SymEq (FP eb sb)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode m, UnifiedSymEq mode a) => UnifiedSymEq mode (MaybeT m a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (MaybeT m a)) (SymEq (MaybeT m a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b) => UnifiedSymEq mode (a, b) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b)) (SymEq (a, b)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode e, UnifiedSymEq1 mode m, UnifiedSymEq mode a) => UnifiedSymEq mode (ExceptT e m a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (ExceptT e m a)) (SymEq (ExceptT e m a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode m, UnifiedSymEq mode a) => UnifiedSymEq mode (IdentityT m a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (IdentityT m a)) (SymEq (IdentityT m a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode w, UnifiedSymEq1 mode m, UnifiedSymEq mode a) => UnifiedSymEq mode (WriterT w m a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (WriterT w m a)) (SymEq (WriterT w m a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode w, UnifiedSymEq1 mode m, UnifiedSymEq mode a) => UnifiedSymEq mode (WriterT w m a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (WriterT w m a)) (SymEq (WriterT w m a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c) => UnifiedSymEq mode (a, b, c) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c)) (SymEq (a, b, c)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode f, UnifiedSymEq1 mode g, UnifiedSymEq mode a) => UnifiedSymEq mode (Sum f g a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (Sum f g a)) (SymEq (Sum f g a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d) => UnifiedSymEq mode (a, b, c, d) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d)) (SymEq (a, b, c, d)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e) => UnifiedSymEq mode (a, b, c, d, e) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e)) (SymEq (a, b, c, d, e)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f) => UnifiedSymEq mode (a, b, c, d, e, f) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f)) (SymEq (a, b, c, d, e, f)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g) => UnifiedSymEq mode (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g)) (SymEq (a, b, c, d, e, f, g)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h) => UnifiedSymEq mode (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h)) (SymEq (a, b, c, d, e, f, g, h)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i)) (SymEq (a, b, c, d, e, f, g, h, i)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j)) (SymEq (a, b, c, d, e, f, g, h, i, j)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j, UnifiedSymEq mode k) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j, k) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j, k)) (SymEq (a, b, c, d, e, f, g, h, i, j, k)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j, UnifiedSymEq mode k, UnifiedSymEq mode l) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j, k, l) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j, k, l)) (SymEq (a, b, c, d, e, f, g, h, i, j, k, l)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j, UnifiedSymEq mode k, UnifiedSymEq mode l, UnifiedSymEq mode m) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j, k, l, m)) (SymEq (a, b, c, d, e, f, g, h, i, j, k, l, m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j, UnifiedSymEq mode k, UnifiedSymEq mode l, UnifiedSymEq mode m, UnifiedSymEq mode n) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) (SymEq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c, UnifiedSymEq mode d, UnifiedSymEq mode e, UnifiedSymEq mode f, UnifiedSymEq mode g, UnifiedSymEq mode h, UnifiedSymEq mode i, UnifiedSymEq mode j, UnifiedSymEq mode k, UnifiedSymEq mode l, UnifiedSymEq mode m, UnifiedSymEq mode n, UnifiedSymEq mode o) => UnifiedSymEq mode (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq :: (If (IsConMode mode) (Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) (SymEq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) => r) -> r Source #

class (forall a. UnifiedSymEq mode a => UnifiedSymEq mode (f a)) => UnifiedSymEq1 mode f where Source #

A class that provides unified lifting of equality comparison.

We use this type class to help resolve the constraints for Eq1 and SymEq1.

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 f) (SymEq1 f) => r) -> r Source #

Instances

Instances details
Typeable mode => UnifiedSymEq1 mode Identity Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 Identity) (SymEq1 Identity) => r) -> r Source #

Typeable mode => UnifiedSymEq1 mode Maybe Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 Maybe) (SymEq1 Maybe) => r) -> r Source #

Typeable mode => UnifiedSymEq1 mode List Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 List) (SymEq1 List) => r) -> r Source #

(Typeable mode, If (IsConMode mode) (Eq1 f) (SymEq1 f), forall a. UnifiedSymEq mode a => UnifiedSymEq mode (f a)) => UnifiedSymEq1 mode f Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 f) (SymEq1 f) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq1 mode (Either a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (Either a)) (SymEq1 (Either a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode m) => UnifiedSymEq1 mode (MaybeT m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (MaybeT m)) (SymEq1 (MaybeT m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq1 mode ((,) a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 ((,) a)) (SymEq1 ((,) a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode e, UnifiedSymEq1 mode m) => UnifiedSymEq1 mode (ExceptT e m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (ExceptT e m)) (SymEq1 (ExceptT e m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode m) => UnifiedSymEq1 mode (IdentityT m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (IdentityT m)) (SymEq1 (IdentityT m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode w, UnifiedSymEq1 mode m) => UnifiedSymEq1 mode (WriterT w m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (WriterT w m)) (SymEq1 (WriterT w m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode w, UnifiedSymEq1 mode m) => UnifiedSymEq1 mode (WriterT w m) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (WriterT w m)) (SymEq1 (WriterT w m)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b) => UnifiedSymEq1 mode ((,,) a b) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 ((,,) a b)) (SymEq1 ((,,) a b)) => r) -> r Source #

(Typeable mode, UnifiedSymEq1 mode f, UnifiedSymEq1 mode g) => UnifiedSymEq1 mode (Sum f g) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 (Sum f g)) (SymEq1 (Sum f g)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq mode c) => UnifiedSymEq1 mode ((,,,) a b c) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq1 :: (If (IsConMode mode) (Eq1 ((,,,) a b c)) (SymEq1 ((,,,) a b c)) => r) -> r Source #

class (forall a. UnifiedSymEq mode a => UnifiedSymEq1 mode (f a)) => UnifiedSymEq2 mode f where Source #

A class that provides unified lifting of equality comparison.

We use this type class to help resolve the constraints for Eq2 and SymEq2.

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 f) (SymEq2 f) => r) -> r Source #

Instances

Instances details
Typeable mode => UnifiedSymEq2 mode Either Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 Either) (SymEq2 Either) => r) -> r Source #

Typeable mode => UnifiedSymEq2 mode (,) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 (,)) (SymEq2 (,)) => r) -> r Source #

(Typeable mode, If (IsConMode mode) (Eq2 f) (SymEq2 f), forall a. UnifiedSymEq mode a => UnifiedSymEq1 mode (f a)) => UnifiedSymEq2 mode f Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 f) (SymEq2 f) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a) => UnifiedSymEq2 mode ((,,) a) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 ((,,) a)) (SymEq2 ((,,) a)) => r) -> r Source #

(Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b) => UnifiedSymEq2 mode ((,,,) a b) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedSymEq

Methods

withBaseSymEq2 :: (If (IsConMode mode) (Eq2 ((,,,) a b)) (SymEq2 ((,,,) a b)) => r) -> r Source #

(.==) :: forall mode a. (Typeable mode, UnifiedSymEq 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 a. (Typeable mode, UnifiedSymEq 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.

symDistinct :: forall mode a. (Typeable mode, UnifiedSymEq mode a) => [a] -> GetBool mode Source #

Unified symDistinct.

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

symDistinct l :: GetBool mode

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

liftSymEq :: forall mode f a b. (Typeable mode, UnifiedSymEq1 mode f) => (a -> b -> GetBool mode) -> f a -> f b -> GetBool mode Source #

Unified liftSymEq.

symEq1 :: forall mode f a. (Typeable mode, UnifiedSymEq mode a, UnifiedSymEq1 mode f) => f a -> f a -> GetBool mode Source #

Unified symEq1.

liftSymEq2 :: forall mode f a b c d. (Typeable mode, UnifiedSymEq2 mode f) => (a -> b -> GetBool mode) -> (c -> d -> GetBool mode) -> f a c -> f b d -> GetBool mode Source #

Unified liftSymEq2.

symEq2 :: forall mode f a b. (Typeable mode, UnifiedSymEq mode a, UnifiedSymEq mode b, UnifiedSymEq2 mode f) => f a b -> f a b -> GetBool mode Source #

Unified symEq2.