torsor-0.1: Torsor Typeclass

Safe HaskellSafe
LanguageHaskell2010

Torsor

Description

The typeclasses provides in this module are equivalent to three of the typeclasses from the vector-space package. This package uses MPTCs with functional dependencies instead of type families in order to improved error messages.

Documentation

class Additive v where #

Methods

zero :: v #

invert :: v -> v #

plus :: v -> v -> v #

minus :: v -> v -> v #

Instances
Additive Double # 
Instance details

Defined in Torsor

Methods

zero :: Double #

invert :: Double -> Double #

plus :: Double -> Double -> Double #

minus :: Double -> Double -> Double #

Additive Int # 
Instance details

Defined in Torsor

Methods

zero :: Int #

invert :: Int -> Int #

plus :: Int -> Int -> Int #

minus :: Int -> Int -> Int #

Additive Int8 # 
Instance details

Defined in Torsor

Methods

zero :: Int8 #

invert :: Int8 -> Int8 #

plus :: Int8 -> Int8 -> Int8 #

minus :: Int8 -> Int8 -> Int8 #

Additive Int16 # 
Instance details

Defined in Torsor

Methods

zero :: Int16 #

invert :: Int16 -> Int16 #

plus :: Int16 -> Int16 -> Int16 #

minus :: Int16 -> Int16 -> Int16 #

Additive Int32 # 
Instance details

Defined in Torsor

Methods

zero :: Int32 #

invert :: Int32 -> Int32 #

plus :: Int32 -> Int32 -> Int32 #

minus :: Int32 -> Int32 -> Int32 #

Additive Int64 # 
Instance details

Defined in Torsor

Methods

zero :: Int64 #

invert :: Int64 -> Int64 #

plus :: Int64 -> Int64 -> Int64 #

minus :: Int64 -> Int64 -> Int64 #

Additive Word # 
Instance details

Defined in Torsor

Methods

zero :: Word #

invert :: Word -> Word #

plus :: Word -> Word -> Word #

minus :: Word -> Word -> Word #

Additive Word8 # 
Instance details

Defined in Torsor

Methods

zero :: Word8 #

invert :: Word8 -> Word8 #

plus :: Word8 -> Word8 -> Word8 #

minus :: Word8 -> Word8 -> Word8 #

Additive Word16 # 
Instance details

Defined in Torsor

Methods

zero :: Word16 #

invert :: Word16 -> Word16 #

plus :: Word16 -> Word16 -> Word16 #

minus :: Word16 -> Word16 -> Word16 #

Additive Word32 # 
Instance details

Defined in Torsor

Methods

zero :: Word32 #

invert :: Word32 -> Word32 #

plus :: Word32 -> Word32 -> Word32 #

minus :: Word32 -> Word32 -> Word32 #

Additive Word64 # 
Instance details

Defined in Torsor

Methods

zero :: Word64 #

invert :: Word64 -> Word64 #

plus :: Word64 -> Word64 -> Word64 #

minus :: Word64 -> Word64 -> Word64 #

class Additive v => Torsor p v | p -> v where #

Methods

add :: v -> p -> p #

difference :: p -> p -> v #

Instances
Torsor Double Double # 
Instance details

Defined in Torsor

Methods

add :: Double -> Double -> Double #

difference :: Double -> Double -> Double #

Torsor Int Int # 
Instance details

Defined in Torsor

Methods

add :: Int -> Int -> Int #

difference :: Int -> Int -> Int #

Torsor Int8 Int8 # 
Instance details

Defined in Torsor

Methods

add :: Int8 -> Int8 -> Int8 #

difference :: Int8 -> Int8 -> Int8 #

Torsor Int16 Int16 # 
Instance details

Defined in Torsor

Methods

add :: Int16 -> Int16 -> Int16 #

difference :: Int16 -> Int16 -> Int16 #

Torsor Int32 Int32 # 
Instance details

Defined in Torsor

Methods

add :: Int32 -> Int32 -> Int32 #

difference :: Int32 -> Int32 -> Int32 #

Torsor Int64 Int64 # 
Instance details

Defined in Torsor

Methods

add :: Int64 -> Int64 -> Int64 #

difference :: Int64 -> Int64 -> Int64 #

Torsor Word Word # 
Instance details

Defined in Torsor

Methods

add :: Word -> Word -> Word #

difference :: Word -> Word -> Word #

Torsor Word8 Word8 # 
Instance details

Defined in Torsor

Methods

add :: Word8 -> Word8 -> Word8 #

difference :: Word8 -> Word8 -> Word8 #

Torsor Word16 Word16 # 
Instance details

Defined in Torsor

Methods

add :: Word16 -> Word16 -> Word16 #

difference :: Word16 -> Word16 -> Word16 #

Torsor Word32 Word32 # 
Instance details

Defined in Torsor

Methods

add :: Word32 -> Word32 -> Word32 #

difference :: Word32 -> Word32 -> Word32 #

Torsor Word64 Word64 # 
Instance details

Defined in Torsor

Methods

add :: Word64 -> Word64 -> Word64 #

difference :: Word64 -> Word64 -> Word64 #

class (Additive v, Additive s) => Scaling v s | v -> s where #

Methods

scale :: s -> v -> v #

Instances
Scaling Double Double # 
Instance details

Defined in Torsor

Methods

scale :: Double -> Double -> Double #

Scaling Int Int # 
Instance details

Defined in Torsor

Methods

scale :: Int -> Int -> Int #

Scaling Int8 Int8 # 
Instance details

Defined in Torsor

Methods

scale :: Int8 -> Int8 -> Int8 #

Scaling Int16 Int16 # 
Instance details

Defined in Torsor

Methods

scale :: Int16 -> Int16 -> Int16 #

Scaling Int32 Int32 # 
Instance details

Defined in Torsor

Methods

scale :: Int32 -> Int32 -> Int32 #

Scaling Int64 Int64 # 
Instance details

Defined in Torsor

Methods

scale :: Int64 -> Int64 -> Int64 #

Scaling Word Word # 
Instance details

Defined in Torsor

Methods

scale :: Word -> Word -> Word #

Scaling Word8 Word8 # 
Instance details

Defined in Torsor

Methods

scale :: Word8 -> Word8 -> Word8 #

Scaling Word16 Word16 # 
Instance details

Defined in Torsor

Methods

scale :: Word16 -> Word16 -> Word16 #

Scaling Word32 Word32 # 
Instance details

Defined in Torsor

Methods

scale :: Word32 -> Word32 -> Word32 #

Scaling Word64 Word64 # 
Instance details

Defined in Torsor

Methods

scale :: Word64 -> Word64 -> Word64 #