Integral -package:aeson-optics -package:optics-core -package:lens-aeson -package:hedgehog -package:cabal-install-solver
Integral numbers, supporting integer division.
The Haskell Report defines no laws for
Integral. However,
Integral instances are customarily expected to define a
Euclidean domain and have the following properties for the
div/
mod and
quot/
rem pairs, given suitable
Euclidean functions
f and
g:
- x = y * quot x y + rem x y with rem x y
= fromInteger 0 or g (rem x y) < g
y
- x = y * div x y + mod x y with mod x y
= fromInteger 0 or f (mod x y) < f
y
An example of a suitable Euclidean function, for
Integer's
instance, is
abs.
In addition,
toInteger should be total, and
fromInteger
should be a left inverse for it, i.e.
fromInteger (toInteger i) =
i.
base-compat Prelude.Compat,
protolude Protolude Protolude.Base,
relude Relude.Numeric,
rio RIO.Prelude.Types,
base-prelude BasePrelude,
classy-prelude ClassyPrelude,
universum Universum.Base,
Cabal-syntax Distribution.Compat.Prelude,
github GitHub.Internal.Prelude,
ghc-lib-parser GHC.Prelude.Basic,
dimensional Numeric.Units.Dimensional.Prelude,
rebase Rebase.Prelude,
xmonad-contrib XMonad.Config.Prime,
stack Stack.Prelude,
linear-base Prelude.Linear,
incipit-base Incipit.Base,
LambdaHack Game.LambdaHack.Core.Prelude,
loc Data.Loc.Internal.Prelude,
yesod-paginator Yesod.Paginator.Prelude,
distribution-opensuse OpenSuse.Prelude,
faktory Faktory.Prelude,
hledger-web Hledger.Web.Import,
termonad Termonad.Prelude Integral numbers, supporting integer division.
The Haskell Report defines no laws for
Integral. However,
Integral instances are customarily expected to define a
Euclidean domain and have the following properties for the
div/
mod and
quot/
rem pairs, given suitable
Euclidean functions
f and
g:
- x = y * quot x y + rem x y with rem x y
= fromInteger 0 or g (rem x y) < g
y
- x = y * div x y + mod x y with mod x y
= fromInteger 0 or f (mod x y) < f
y
An example of a suitable Euclidean function, for
Integer's
instance, is
abs.
TextShow instances and monomorphic functions for integral
types.
Since: 2
Functions for parsing and producing
Integral values from/to
ByteStrings based on the "Char8" encoding. That is, we assume
an ASCII-compatible encoding of alphanumeric characters.
Since: 0.3.0
Integral numbers, supporting integer division.
An Integral is anything that satisfies the law:
\a b -> b == zero || b * (a `div` b) + (a `mod` b) == a
>>> 3 `divMod` 2
(1,1)
>>> (-3) `divMod` 2
(-2,1)
>>> (-3) `quotRem` 2
(-1,-1)
Integral Literal support
e.g. 123 :: Integer 123 :: Word8
Integral numbers, supporting integer division.
The Haskell Report defines no laws for
Integral. However,
Integral instances are customarily expected to define a
Euclidean domain and have the following properties for the 'div'/'mod'
and 'quot'/'rem' pairs, given suitable Euclidean functions
f
and
g:
- x = y * quot x y + rem x y with rem x y
= fromInteger 0 or g (rem x y) < g
y
- x = y * div x y + mod x y with mod x y
= fromInteger 0 or f (mod x y) < f
y
An example of a suitable Euclidean function, for
Integer's
instance, is
abs.
Print integral numbers in common positional numeral systems.
Parsers for integral numbers written in positional numeral systems.
Safe overrides of the methods of class
Integral.
Integration using the rectangle rule.
Constructor for a simple integral type.
Integral symbol. Use
integralFromTo if you want to specify the
limits of the integral.
Memoize an integral type.
matches an
Integral value
Note that the combinator
(rPair . integral . integral) is
ill-defined because the parse canwell. not tell where it is supposed
to split the sequence of digits to produced two ints.