HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulenumeric-prelude-0.4.4Haskell98

Number.Peano

Lazy Peano numbers represent natural numbers inclusive infinity. Since they are lazily evaluated, they are optimally for use as number type of genericLength et.al.

  • 2 types
  • 26 values
datadata T
#

Constructors

Instances25Bounded, Enum, Eq, Integral, Num, Ord, …
  • Bounded TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Enum TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Eq TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Integral TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Num TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Ord TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Read TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Real TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Show TDefined in numeric-prelude-0.4.4 · Number.Peano
  • Ix TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
  • C TDefined in numeric-prelude-0.4.4 · Number.Peano
valueifLazy :: Bool -> T -> T -> T
#

If all values are completely defined, then it holds

if b then x else y == ifLazy b x y

However if b is undefined, then it is at least known that the result is larger than min x y.

valueargMin :: (T, a) -> (T, a) -> a
#

On equality the first operand is returned.

valueargMax :: (T, a) -> (T, a) -> a
#

On equality the first operand is returned.

valueglue :: T -> T -> (T, (Bool, T))
#

In glue x y == (z,(b,r)) z represents min x y, r represents max x y - min x y, and x<=y == b.

Cf. Numeric.NonNegative.Chunky