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

Description

 
Synopsis

Documentation

safeDiv :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m a Source #

Unified safeDiv operation.

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

safeDiv @mode a b

safeMod :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m a Source #

Unified safeMod operation.

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

safeMod @mode a b

safeDivMod :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m (a, a) Source #

Unified safeDivMod operation.

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

safeDivMod @mode a b

safeQuot :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m a Source #

Unified safeQuot operation.

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

safeQuot @mode a b

safeRem :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m a Source #

Unified safeRem operation.

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

safeRem @mode a b

safeQuotRem :: forall (mode :: EvalModeTag) e a m. (MonadError e m, UnifiedSafeDiv mode e a m) => a -> a -> m (a, a) Source #

Unified safeQuotRem operation.

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

safeQuotRem @mode a b

class UnifiedSafeDiv (mode :: EvalModeTag) e a (m :: Type -> Type) where Source #

A class that provides unified division operations.

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

Methods

withBaseSafeDiv :: (SafeDiv e a m => r) -> r Source #

Instances

Instances details
(MonadError ArithException m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S ArithException SymInteger m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError ArithException m, UnifiedBranching mode m) => UnifiedSafeDiv mode ArithException Integer m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(UnifiedBranching mode m, SafeDiv e a m) => UnifiedSafeDiv mode e a m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

Methods

withBaseSafeDiv :: (SafeDiv e a m => r) -> r Source #

(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeDiv 'S ArithException (SymIntN n) m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeDiv 'S ArithException (SymWordN n) m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeDiv mode ArithException (IntN n) m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

Methods

withBaseSafeDiv :: (SafeDiv ArithException (IntN n) m => r) -> r Source #

(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeDiv mode ArithException (WordN n) m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

Methods

withBaseSafeDiv :: (SafeDiv ArithException (WordN n) m => r) -> r Source #

(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymIntN m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymWordN m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeIntN m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv

(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeWordN m Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv