HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulefirst-class-families-0.8.1.0Haskell2010

Fcf.Data.Nat

Natural numbers.

Note that the operators from this module conflict with GHC.TypeLits and GHC.TypeNats.

  • 9 types

Reexported type

1 declaration
typetype Nat = Natural
#

A type synonym for Natural.

Previously, this was an opaque data type, but it was changed to a type synonym.

Instances11HasResolution, Eval, …
  • KnownNat n => HasResolution nDefined in base-4.20.2.0 · Data.Fixed

    For example, Fixed 1000 will give you a Fixed with a resolution of 1000.

  • type Eval (Sum ns) = Eval (Foldr (+) 0 ns)Defined in first-class-families-0.8.1.0 · Fcf.Class.Foldable
  • type Eval (FindIndex _p '[]) = 'NothingDefined in first-class-families-0.8.1.0 · Fcf.Data.List
  • type Eval (FindIndex p (a2 ': as)) = Eval (If (Eval (p a2)) (Pure ('Just 0)) (Map ((+) 1) =<< FindIndex p as))Defined in first-class-families-0.8.1.0 · Fcf.Data.List
  • type Eval (Length '[]) = 0Defined in first-class-families-0.8.1.0 · Fcf.Data.List
  • type Eval (Length (a2 ': as)) = 1 + Eval (Length as)Defined in first-class-families-0.8.1.0 · Fcf.Data.List
  • type Eval (NumIter a s) = If (Eval (s > 0)) ('Just '(a, s - 1)) 'NothingDefined in first-class-families-0.8.1.0 · Fcf.Data.List
  • type Eval (a * b) = a * bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
  • type Eval (a + b) = a + bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
  • type Eval (a - b) = a - bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
  • type Eval (a ^ b) = a ^ bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat

Operations

4 declarations
datadata (+) (a :: Nat) (b :: Nat) (c :: Nat)
#
Instances1Eval
  • type Eval (a + b) = a + bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (-) (a :: Nat) (b :: Nat) (c :: Nat)
#
Instances1Eval
  • type Eval (a - b) = a - bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (*) (a :: Nat) (b :: Nat) (c :: Nat)
#
Instances1Eval
  • type Eval (a * b) = a * bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (^) (a :: Nat) (b :: Nat) (c :: Nat)
#
Instances1Eval
  • type Eval (a ^ b) = a ^ bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat

Comparisons

4 declarations

Note that these conflict with Fcf.Class.Ord.

datadata (<=) (a :: Nat) (b :: Nat) (c :: Bool)
#
Instances1Eval
  • type Eval (a <= b) = a <=? bDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (>=) (a :: Nat) (b :: Nat) (c :: Bool)
#
Instances1Eval
  • type Eval (a >= b) = b <=? aDefined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (<) (a :: Nat) (b :: Nat) (c :: Bool)
#
Instances1Eval
  • type Eval (a < b) = Eval (Not =<< (a >= b))Defined in first-class-families-0.8.1.0 · Fcf.Data.Nat
datadata (>) (a :: Nat) (b :: Nat) (c :: Bool)
#
Instances1Eval
  • type Eval (a > b) = Eval (Not =<< (a <= b))Defined in first-class-families-0.8.1.0 · Fcf.Data.Nat