basement-0.0.16: Foundation scrap box of array & string

Safe Haskell | None
Language | Haskell2010

Basement.Numerical.Subtractive

Synopsis

- class Subtractive a where
  - type Difference a
  - (-) :: a -> a -> Difference a

# Documentation

class Subtractive a where #

Represent class of things that can be subtracted.

Note that the result is not necessary of the same type as the operand depending on the actual type.

For example:

    (-) :: Int -> Int -> Int
    (-) :: DateTime -> DateTime -> Seconds
    (-) :: Ptr a -> Ptr a -> PtrDiff
    (-) :: Natural -> Natural -> Maybe Natural

Associated Types

type Difference a #

Methods

(-) :: a -> a -> Difference a infixl 6 #

#### Instances

Instances details

Subtractive Word128 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word128 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word128 = Word128
Methods (-) :: Word128 -> Word128 -> Difference Word128 #
Subtractive Word256 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word256 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word256 = Word256
Methods (-) :: Word256 -> Word256 -> Difference Word256 #
Subtractive CBool # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CBool |
Instance details Defined in Basement.Numerical.Subtractive type Difference CBool = CBool
Methods (-) :: CBool -> CBool -> Difference CBool #
Subtractive CChar # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CChar |
Instance details Defined in Basement.Numerical.Subtractive type Difference CChar = CChar
Methods (-) :: CChar -> CChar -> Difference CChar #
Subtractive CClock # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CClock |
Instance details Defined in Basement.Numerical.Subtractive type Difference CClock = CClock
Methods (-) :: CClock -> CClock -> Difference CClock #
Subtractive CDouble # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CDouble |
Instance details Defined in Basement.Numerical.Subtractive type Difference CDouble = CDouble
Methods (-) :: CDouble -> CDouble -> Difference CDouble #
Subtractive CFloat # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CFloat |
Instance details Defined in Basement.Numerical.Subtractive type Difference CFloat = CFloat
Methods (-) :: CFloat -> CFloat -> Difference CFloat #
Subtractive CInt # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CInt |
Instance details Defined in Basement.Numerical.Subtractive type Difference CInt = CInt
Methods (-) :: CInt -> CInt -> Difference CInt #
Subtractive CIntMax # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CIntMax |
Instance details Defined in Basement.Numerical.Subtractive type Difference CIntMax = CIntMax
Methods (-) :: CIntMax -> CIntMax -> Difference CIntMax #
Subtractive CIntPtr # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CIntPtr |
Instance details Defined in Basement.Numerical.Subtractive type Difference CIntPtr = CIntPtr
Methods (-) :: CIntPtr -> CIntPtr -> Difference CIntPtr #
Subtractive CLLong # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CLLong |
Instance details Defined in Basement.Numerical.Subtractive type Difference CLLong = CLLong
Methods (-) :: CLLong -> CLLong -> Difference CLLong #
Subtractive CLong # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CLong |
Instance details Defined in Basement.Numerical.Subtractive type Difference CLong = CLong
Methods (-) :: CLong -> CLong -> Difference CLong #
Subtractive CPtrdiff # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CPtrdiff |
Instance details Defined in Basement.Numerical.Subtractive type Difference CPtrdiff = CPtrdiff
Methods (-) :: CPtrdiff -> CPtrdiff -> Difference CPtrdiff #
Subtractive CSChar # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CSChar |
Instance details Defined in Basement.Numerical.Subtractive type Difference CSChar = CSChar
Methods (-) :: CSChar -> CSChar -> Difference CSChar #
Subtractive CSUSeconds # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CSUSeconds |
Instance details Defined in Basement.Numerical.Subtractive type Difference CSUSeconds = CSUSeconds
Methods (-) :: CSUSeconds -> CSUSeconds -> Difference CSUSeconds #
Subtractive CShort # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CShort |
Instance details Defined in Basement.Numerical.Subtractive type Difference CShort = CShort
Methods (-) :: CShort -> CShort -> Difference CShort #
Subtractive CSigAtomic # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CSigAtomic |
Instance details Defined in Basement.Numerical.Subtractive type Difference CSigAtomic = CSigAtomic
Methods (-) :: CSigAtomic -> CSigAtomic -> Difference CSigAtomic #
Subtractive CSize # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CSize |
Instance details Defined in Basement.Numerical.Subtractive type Difference CSize = CSize
Methods (-) :: CSize -> CSize -> Difference CSize #
Subtractive CTime # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CTime |
Instance details Defined in Basement.Numerical.Subtractive type Difference CTime = CTime
Methods (-) :: CTime -> CTime -> Difference CTime #
Subtractive CUChar # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUChar |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUChar = CUChar
Methods (-) :: CUChar -> CUChar -> Difference CUChar #
Subtractive CUInt # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUInt |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUInt = CUInt
Methods (-) :: CUInt -> CUInt -> Difference CUInt #
Subtractive CUIntMax # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUIntMax |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUIntMax = CUIntMax
Methods (-) :: CUIntMax -> CUIntMax -> Difference CUIntMax #
Subtractive CUIntPtr # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUIntPtr |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUIntPtr = CUIntPtr
Methods (-) :: CUIntPtr -> CUIntPtr -> Difference CUIntPtr #
Subtractive CULLong # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CULLong |
Instance details Defined in Basement.Numerical.Subtractive type Difference CULLong = CULLong
Methods (-) :: CULLong -> CULLong -> Difference CULLong #
Subtractive CULong # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CULong |
Instance details Defined in Basement.Numerical.Subtractive type Difference CULong = CULong
Methods (-) :: CULong -> CULong -> Difference CULong #
Subtractive CUSeconds # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUSeconds |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUSeconds = CUSeconds
Methods (-) :: CUSeconds -> CUSeconds -> Difference CUSeconds #
Subtractive CUShort # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CUShort |
Instance details Defined in Basement.Numerical.Subtractive type Difference CUShort = CUShort
Methods (-) :: CUShort -> CUShort -> Difference CUShort #
Subtractive CWchar # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference CWchar |
Instance details Defined in Basement.Numerical.Subtractive type Difference CWchar = CWchar
Methods (-) :: CWchar -> CWchar -> Difference CWchar #
Subtractive Int16 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Int16 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Int16 = Int16
Methods (-) :: Int16 -> Int16 -> Difference Int16 #
Subtractive Int32 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Int32 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Int32 = Int32
Methods (-) :: Int32 -> Int32 -> Difference Int32 #
Subtractive Int64 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Int64 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Int64 = Int64
Methods (-) :: Int64 -> Int64 -> Difference Int64 #
Subtractive Int8 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Int8 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Int8 = Int8
Methods (-) :: Int8 -> Int8 -> Difference Int8 #
Subtractive COff # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference COff |
Instance details Defined in Basement.Numerical.Subtractive type Difference COff = COff
Methods (-) :: COff -> COff -> Difference COff #
Subtractive Word16 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word16 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word16 = Word16
Methods (-) :: Word16 -> Word16 -> Difference Word16 #
Subtractive Word32 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word32 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word32 = Word32
Methods (-) :: Word32 -> Word32 -> Difference Word32 #
Subtractive Word64 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word64 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word64 = Word64
Methods (-) :: Word64 -> Word64 -> Difference Word64 #
Subtractive Word8 # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word8 |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word8 = Word8
Methods (-) :: Word8 -> Word8 -> Difference Word8 #
Subtractive Integer # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Integer |
Instance details Defined in Basement.Numerical.Subtractive type Difference Integer = Integer
Methods (-) :: Integer -> Integer -> Difference Integer #
Subtractive Natural # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Natural |
Instance details Defined in Basement.Numerical.Subtractive type Difference Natural = Maybe Natural
Methods (-) :: Natural -> Natural -> Difference Natural #
Subtractive Char # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Char |
Instance details Defined in Basement.Numerical.Subtractive type Difference Char = Int
Methods (-) :: Char -> Char -> Difference Char #
Subtractive Double # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Double |
Instance details Defined in Basement.Numerical.Subtractive type Difference Double = Double
Methods (-) :: Double -> Double -> Difference Double #
Subtractive Float # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Float |
Instance details Defined in Basement.Numerical.Subtractive type Difference Float = Float
Methods (-) :: Float -> Float -> Difference Float #
Subtractive Int # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Int |
Instance details Defined in Basement.Numerical.Subtractive type Difference Int = Int
Methods (-) :: Int -> Int -> Difference Int #
Subtractive Word # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference Word |
Instance details Defined in Basement.Numerical.Subtractive type Difference Word = Word
Methods (-) :: Word -> Word -> Difference Word #
SizeValid n => Subtractive (Bits n) # |
Instance details Defined in Basement.Bits Associated Types
type Difference (Bits n) |
Instance details Defined in Basement.Bits type Difference (Bits n) = Bits n
Methods (-) :: Bits n -> Bits n -> Difference (Bits n) #
KnownNat n => Subtractive (Zn n) # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference (Zn n) |
Instance details Defined in Basement.Numerical.Subtractive type Difference (Zn n) = Zn n
Methods (-) :: Zn n -> Zn n -> Difference (Zn n) #
(KnownNat n, NatWithinBound Word64 n) => Subtractive (Zn64 n) # |
Instance details Defined in Basement.Numerical.Subtractive Associated Types
type Difference (Zn64 n) |
Instance details Defined in Basement.Numerical.Subtractive type Difference (Zn64 n) = Zn64 n
Methods (-) :: Zn64 n -> Zn64 n -> Difference (Zn64 n) #
Subtractive (CountOf ty) # |
Instance details Defined in Basement.Types.OffsetSize Associated Types
type Difference (CountOf ty) |
Instance details Defined in Basement.Types.OffsetSize type Difference (CountOf ty) = Maybe (CountOf ty)
Methods (-) :: CountOf ty -> CountOf ty -> Difference (CountOf ty) #
Subtractive (Offset ty) # |
Instance details Defined in Basement.Types.OffsetSize Associated Types
type Difference (Offset ty) |
Instance details Defined in Basement.Types.OffsetSize type Difference (Offset ty) = CountOf ty
Methods (-) :: Offset ty -> Offset ty -> Difference (Offset ty) #