pact-time-0.3.0.1: Time Library for Pact
CopyrightCopyright © 2018 Kadena LLC.
LicenseMIT
MaintainerLars Kuhtz <[email protected]>
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

Numeric.Additive

Description

Haskell's Num class doesn't support fine grained control over what arithmetic operations are defined for a type. Sometimes only some operations have a well defined semantics and Num instances are notorious for including undefined/error values or unlawful workarounds.

Synopsis

Additive Semigroup

class AdditiveSemigroup g where Source #

Additive Semigroup

(a `plus` b) `plus` c == a `plus` (b `plus` c)

Methods

plus :: g -> g -> g Source #

Instances

Instances details
AdditiveSemigroup Int16 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Int16 -> Int16 -> Int16 Source #

AdditiveSemigroup Int32 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Int32 -> Int32 -> Int32 Source #

AdditiveSemigroup Int64 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Int64 -> Int64 -> Int64 Source #

AdditiveSemigroup Int8 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Int8 -> Int8 -> Int8 Source #

AdditiveSemigroup Rational Source # 
Instance details

Defined in Numeric.Additive

AdditiveSemigroup Word16 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Word16 -> Word16 -> Word16 Source #

AdditiveSemigroup Word32 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Word32 -> Word32 -> Word32 Source #

AdditiveSemigroup Word64 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Word64 -> Word64 -> Word64 Source #

AdditiveSemigroup Word8 Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Word8 -> Word8 -> Word8 Source #

AdditiveSemigroup Word128 Source # 
Instance details

Defined in Numeric.Additive

AdditiveSemigroup Word256 Source # 
Instance details

Defined in Numeric.Additive

AdditiveSemigroup Integer Source # 
Instance details

Defined in Numeric.Additive

AdditiveSemigroup Natural Source # 
Instance details

Defined in Numeric.Additive

AdditiveSemigroup Int Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Int -> Int -> Int Source #

AdditiveSemigroup Word Source # 
Instance details

Defined in Numeric.Additive

Methods

plus :: Word -> Word -> Word Source #

class AdditiveSemigroup g => AdditiveAbelianSemigroup g Source #

Additive Abelian Semigroup

a `plus` b == b `plus` a

(^+^) :: AdditiveAbelianSemigroup g => g -> g -> g infixl 6 Source #

Additive Monoid

class AdditiveSemigroup g => AdditiveMonoid g where Source #

Additive Monoid

a `plus` zero == a
zero `plus` a == a

Methods

zero :: g Source #

Instances

Instances details
AdditiveMonoid Int16 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Int16 Source #

AdditiveMonoid Int32 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Int32 Source #

AdditiveMonoid Int64 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Int64 Source #

AdditiveMonoid Int8 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Int8 Source #

AdditiveMonoid Rational Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Rational Source #

AdditiveMonoid Word16 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word16 Source #

AdditiveMonoid Word32 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word32 Source #

AdditiveMonoid Word64 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word64 Source #

AdditiveMonoid Word8 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word8 Source #

AdditiveMonoid Word128 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word128 Source #

AdditiveMonoid Word256 Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word256 Source #

AdditiveMonoid Integer Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Integer Source #

AdditiveMonoid Natural Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Natural Source #

AdditiveMonoid Int Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Int Source #

AdditiveMonoid Word Source # 
Instance details

Defined in Numeric.Additive

Methods

zero :: Word Source #

Additive Group

class AdditiveMonoid g => AdditiveGroup g where Source #

Additive Group

a `plus` inverse a == zero
inverse a `plus` a == zero

Minimal complete definition

invert | minus

Methods

invert :: g -> g Source #

minus :: g -> g -> g Source #

Instances

Instances details
AdditiveGroup Int16 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Int32 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Int64 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Int8 Source # 
Instance details

Defined in Numeric.Additive

Methods

invert :: Int8 -> Int8 Source #

minus :: Int8 -> Int8 -> Int8 Source #

AdditiveGroup Rational Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word16 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word32 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word64 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word8 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word128 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Word256 Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Integer Source # 
Instance details

Defined in Numeric.Additive

AdditiveGroup Int Source # 
Instance details

Defined in Numeric.Additive

Methods

invert :: Int -> Int Source #

minus :: Int -> Int -> Int Source #

AdditiveGroup Word Source # 
Instance details

Defined in Numeric.Additive

Methods

invert :: Word -> Word Source #

minus :: Word -> Word -> Word Source #

Additive Abelian Group

type AdditiveAbelianGroup g = (AdditiveGroup g, AdditiveAbelianMonoid g) Source #

Additive Abelian Group

(^-^) :: AdditiveAbelianGroup g => g -> g -> g infix 6 Source #