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.UnifiedFromIntegral

Description

 
Synopsis

Documentation

class UnifiedFromIntegral (mode :: EvalModeTag) a b where Source #

A class that provides unified conversion from integral types.

We use this type class to help resolve the constraints for SymFromIntegral.

Methods

withBaseFromIntegral :: (If (IsConMode mode) (Integral a, Num b) (SymFromIntegral a b) => r) -> r Source #

Instances

Instances details
UnifiedFromIntegral 'Con Integer AlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

UnifiedFromIntegral 'Con Integer Integer Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

UnifiedFromIntegral 'Sym SymInteger SymAlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

UnifiedFromIntegral 'Sym SymInteger SymInteger Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(Typeable mode, If (IsConMode mode) (Integral a, Num b) (SymFromIntegral a b)) => UnifiedFromIntegral mode a b Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode mode) (Integral a, Num b) (SymFromIntegral a b) => r) -> r Source #

(KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con Integer (IntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con Integer (WordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym SymInteger (SymIntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym SymInteger (SymWordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

ValidFP eb sb => UnifiedFromIntegral 'Con Integer (FP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral Integer, Num (FP eb sb)) (SymFromIntegral Integer (FP eb sb)) => r) -> r Source #

ValidFP eb sb => UnifiedFromIntegral 'Sym SymInteger (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Con (IntN n') AlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Con (IntN n') Integer Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Con (WordN n') AlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Con (WordN n') Integer Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Sym (SymIntN n') SymAlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Sym (SymIntN n') SymInteger Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Sym (SymWordN n') SymAlgReal Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n') => UnifiedFromIntegral 'Sym (SymWordN n') SymInteger Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con (IntN n') (IntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (IntN n'), Num (IntN n)) (SymFromIntegral (IntN n') (IntN n)) => r) -> r Source #

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con (IntN n') (WordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (IntN n'), Num (WordN n)) (SymFromIntegral (IntN n') (WordN n)) => r) -> r Source #

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con (WordN n') (IntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (WordN n'), Num (IntN n)) (SymFromIntegral (WordN n') (IntN n)) => r) -> r Source #

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Con (WordN n') (WordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (WordN n'), Num (WordN n)) (SymFromIntegral (WordN n') (WordN n)) => r) -> r Source #

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym (SymIntN n') (SymIntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym (SymIntN n') (SymWordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym (SymWordN n') (SymIntN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'Sym (SymWordN n') (SymWordN n) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'Con (IntN n') (FP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (IntN n'), Num (FP eb sb)) (SymFromIntegral (IntN n') (FP eb sb)) => r) -> r Source #

(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'Con (WordN n') (FP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Con) (Integral (WordN n'), Num (FP eb sb)) (SymFromIntegral (WordN n') (FP eb sb)) => r) -> r Source #

(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'Sym (SymIntN n') (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Sym) (Integral (SymIntN n'), Num (SymFP eb sb)) (SymFromIntegral (SymIntN n') (SymFP eb sb)) => r) -> r Source #

(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'Sym (SymWordN n') (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Unified.Internal.Class.UnifiedFromIntegral

Methods

withBaseFromIntegral :: (If (IsConMode 'Sym) (Integral (SymWordN n'), Num (SymFP eb sb)) (SymFromIntegral (SymWordN n') (SymFP eb sb)) => r) -> r Source #

symFromIntegral :: forall mode a b. (Typeable mode, UnifiedFromIntegral mode a b) => a -> b Source #

Unified symFromIntegral operation.

This function isn't able to infer the mode, so you need to provide the mode explicitly. For example:

symFromIntegral @mode a