mixed-types-num-0.6.2: Alternative Prelude with numeric and logic expressions typed bottom-up
Copyright(c) Michal Konecny
LicenseBSD3
Maintainer[email protected]
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Numeric.MixedTypes.Round

Description

 
Synopsis

Rounded division + modulus

class CanDivIMod t1 t2 where Source #

Minimal complete definition

divIMod

Associated Types

type DivIType t1 t2 Source #

type ModType t1 t2 Source #

type ModType t1 t2 = t1

Methods

divIMod :: t1 -> t2 -> (DivIType t1 t2, ModType t1 t2) Source #

mod :: t1 -> t2 -> ModType t1 t2 Source #

divI :: t1 -> t2 -> DivIType t1 t2 Source #

Instances

Instances details
CanDivIMod Rational Rational Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Rational Rational 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Rational Rational 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Rational Integer Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Rational Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Rational Integer 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Rational Int Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Rational Int 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Rational Int 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Integer Rational Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Integer Rational 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Integer Rational 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Integer Integer Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Integer Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Integer Integer 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Integer Int Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Integer Int 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Integer Int 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Double Integer Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Double Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Double Integer 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Double Double Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Double Double 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Double Double 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Int Rational Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Int Rational 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Int Rational 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Int Integer Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Int Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Int Integer 
Instance details

Defined in Numeric.MixedTypes.Round

CanDivIMod Int Int Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Int Int 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Int Int 
Instance details

Defined in Numeric.MixedTypes.Round

(CanDivIMod Rational t2, CanTestPosNeg t2) => CanDivIMod Rational (CN t2) Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Rational (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Rational (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

Methods

divIMod :: Rational -> CN t2 -> (DivIType Rational (CN t2), ModType Rational (CN t2)) Source #

mod :: Rational -> CN t2 -> ModType Rational (CN t2) Source #

divI :: Rational -> CN t2 -> DivIType Rational (CN t2) Source #

(CanDivIMod Integer t2, CanTestPosNeg t2) => CanDivIMod Integer (CN t2) Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Integer (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Integer (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Integer (CN t2) = CN (ModType Integer t2)

Methods

divIMod :: Integer -> CN t2 -> (DivIType Integer (CN t2), ModType Integer (CN t2)) Source #

mod :: Integer -> CN t2 -> ModType Integer (CN t2) Source #

divI :: Integer -> CN t2 -> DivIType Integer (CN t2) Source #

(CanDivIMod Double t2, CanTestPosNeg t2) => CanDivIMod Double (CN t2) Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Double (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type DivIType Double (CN t2) = CN (DivIType Double t2)
type ModType Double (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Double (CN t2) = CN (ModType Double t2)

Methods

divIMod :: Double -> CN t2 -> (DivIType Double (CN t2), ModType Double (CN t2)) Source #

mod :: Double -> CN t2 -> ModType Double (CN t2) Source #

divI :: Double -> CN t2 -> DivIType Double (CN t2) Source #

(CanDivIMod Int t2, CanTestPosNeg t2) => CanDivIMod Int (CN t2) Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType Int (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type DivIType Int (CN t2) = CN (DivIType Int t2)
type ModType Int (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType Int (CN t2) = CN (ModType Int t2)

Methods

divIMod :: Int -> CN t2 -> (DivIType Int (CN t2), ModType Int (CN t2)) Source #

mod :: Int -> CN t2 -> ModType Int (CN t2) Source #

divI :: Int -> CN t2 -> DivIType Int (CN t2) Source #

CanDivIMod t1 Rational => CanDivIMod (CN t1) Rational Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType (CN t1) Rational 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) Rational 
Instance details

Defined in Numeric.MixedTypes.Round

Methods

divIMod :: CN t1 -> Rational -> (DivIType (CN t1) Rational, ModType (CN t1) Rational) Source #

mod :: CN t1 -> Rational -> ModType (CN t1) Rational Source #

divI :: CN t1 -> Rational -> DivIType (CN t1) Rational Source #

CanDivIMod t1 Integer => CanDivIMod (CN t1) Integer Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType (CN t1) Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) Integer 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) Integer = CN (ModType t1 Integer)

Methods

divIMod :: CN t1 -> Integer -> (DivIType (CN t1) Integer, ModType (CN t1) Integer) Source #

mod :: CN t1 -> Integer -> ModType (CN t1) Integer Source #

divI :: CN t1 -> Integer -> DivIType (CN t1) Integer Source #

CanDivIMod t1 Double => CanDivIMod (CN t1) Double Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType (CN t1) Double 
Instance details

Defined in Numeric.MixedTypes.Round

type DivIType (CN t1) Double = CN (DivIType t1 Double)
type ModType (CN t1) Double 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) Double = CN (ModType t1 Double)

Methods

divIMod :: CN t1 -> Double -> (DivIType (CN t1) Double, ModType (CN t1) Double) Source #

mod :: CN t1 -> Double -> ModType (CN t1) Double Source #

divI :: CN t1 -> Double -> DivIType (CN t1) Double Source #

CanDivIMod t1 Int => CanDivIMod (CN t1) Int Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType (CN t1) Int 
Instance details

Defined in Numeric.MixedTypes.Round

type DivIType (CN t1) Int = CN (DivIType t1 Int)
type ModType (CN t1) Int 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) Int = CN (ModType t1 Int)

Methods

divIMod :: CN t1 -> Int -> (DivIType (CN t1) Int, ModType (CN t1) Int) Source #

mod :: CN t1 -> Int -> ModType (CN t1) Int Source #

divI :: CN t1 -> Int -> DivIType (CN t1) Int Source #

(CanDivIMod t1 t2, CanTestPosNeg t2) => CanDivIMod (CN t1) (CN t2) Source # 
Instance details

Defined in Numeric.MixedTypes.Round

Associated Types

type DivIType (CN t1) (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type DivIType (CN t1) (CN t2) = CN (DivIType t1 t2)
type ModType (CN t1) (CN t2) 
Instance details

Defined in Numeric.MixedTypes.Round

type ModType (CN t1) (CN t2) = CN (ModType t1 t2)

Methods

divIMod :: CN t1 -> CN t2 -> (DivIType (CN t1) (CN t2), ModType (CN t1) (CN t2)) Source #

mod :: CN t1 -> CN t2 -> ModType (CN t1) (CN t2) Source #

divI :: CN t1 -> CN t2 -> DivIType (CN t1) (CN t2) Source #

Rounding

class CanRound t where Source #

A replacement for Prelude's RealFrac operations, such as round in which the result type is fixed to Integer.

If RealFrac t and CanTestPosNeg t, then one can use the default implementation to mirror Prelude's round, etc.

In other cases, it is sufficient to define properFraction.

Minimal complete definition

Nothing

Associated Types

type RoundType t Source #

class HasIntegerBounds t where Source #

Minimal complete definition

Nothing

Tests