HORIZON HASKELLDocslts/ghc-10.0.x77a86622026-10-31Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 77a8662 · 2026-10-31

Modulebin-0.1.4.1Haskell2010

Data.Type.Bin

Binary natural numbers. DataKinds stuff.

Contents
  1. Singleton
  2. Implicit
  3. Type equality
  4. Induction
  5. Arithmetic
  6. Successor
  7. Predecessor
  8. Addition
  9. Extras
  10. Conversions
  11. To GHC Nat
  12. To fin Nat
  13. Aliases
Synopsis
  • Packagebin-0.1.4.1
  • Exports38
  • LanguageHaskell2010
  • LicenceGPL-2.0-or-later
  • SourceBin.hs

Singleton

datadata SBin (b :: Bin) where

Singleton of Bin.

Constructors

Instances10TestEquality, EqP, GEq, GNFData, GShow, Eq, …
  • TestEquality SBinDefined in bin-0.1.4.1 · Data.Type.Bin
  • EqP SBinDefined in bin-0.1.4.1 · Data.Type.Bin
  • GEq SBinDefined in bin-0.1.4.1 · Data.Type.Bin
  • GNFData SBinDefined in bin-0.1.4.1 · Data.Type.Bin
  • GShow SBinDefined in bin-0.1.4.1 · Data.Type.Bin
  • Eq (SBin a)Defined in bin-0.1.4.1 · Data.Type.Bin
  • Ord (SBin a)Defined in bin-0.1.4.1 · Data.Type.Bin
  • Show (SBin b)Defined in bin-0.1.4.1 · Data.Type.Bin
  • NFData (SBin n)Defined in bin-0.1.4.1 · Data.Type.Bin
  • SBinI b => Boring (SBin b)Defined in bin-0.1.4.1 · Data.Type.Bin
datadata SBinP (b :: BinP) where

Singleton of BinP.

Constructors

Instances10TestEquality, EqP, GEq, GNFData, GShow, Eq, …
  • TestEquality SBinPDefined in bin-0.1.4.1 · Data.Type.BinP
  • EqP SBinPDefined in bin-0.1.4.1 · Data.Type.BinP
  • GEq SBinPDefined in bin-0.1.4.1 · Data.Type.BinP
  • GNFData SBinPDefined in bin-0.1.4.1 · Data.Type.BinP
  • GShow SBinPDefined in bin-0.1.4.1 · Data.Type.BinP
  • Eq (SBinP a)Defined in bin-0.1.4.1 · Data.Type.BinP
  • Ord (SBinP a)Defined in bin-0.1.4.1 · Data.Type.BinP
  • Show (SBinP b)Defined in bin-0.1.4.1 · Data.Type.BinP
  • NFData (SBinP n)Defined in bin-0.1.4.1 · Data.Type.BinP
  • SBinPI b => Boring (SBinP b)Defined in bin-0.1.4.1 · Data.Type.BinP

Implicit

Type equality

Induction

Arithmetic

Successor

Predecessor

familytype family Pred (b :: BinP) :: Bin where

Predecessor type family..

Example1 expression
:kind! Pred BP.BinP1Pred BP.BinP1 :: Bin= BZ
Example1 expression
:kind! Pred BP.BinP5 == Bin4Pred BP.BinP5 == Bin4 :: Bool= True
Example1 expression
:kind! Pred BP.BinP8 == Bin7Pred BP.BinP8 == Bin7 :: Bool= True
Example1 expression
:kind! Pred BP.BinP6 == Bin5Pred BP.BinP6 == Bin5 :: Bool= True

Equations

Addition

familytype family Plus (a :: Bin) (b :: Bin) :: Bin where

Addition.

Example1 expression
:kind! Plus Bin3 Bin3 == Bin6Plus Bin3 Bin3 == Bin6 :: Bool= True
Example1 expression
:kind! Mult2 Bin3 == Bin6Mult2 Bin3 == Bin6 :: Bool= True

Equations

Extras

familytype family Mult2 (b :: Bin) :: Bin where

Multiply by two.

Example1 expression
:kind! Mult2 Bin0 == Bin0Mult2 Bin0 == Bin0 :: Bool= True
Example1 expression
:kind! Mult2 Bin3 == Bin6Mult2 Bin3 == Bin6 :: Bool= True

Equations

familytype family Mult2Plus1 (b :: Bin) :: BinP where

Multiply by two and add one.

Example1 expression
:kind! Mult2Plus1 Bin0Mult2Plus1 Bin0 :: BinP= BE
Example1 expression
:kind! Mult2Plus1 Bin4 == BinP9Mult2Plus1 Bin4 == BinP9 :: Bool= True

Equations

Conversions

To GHC Nat

familytype family FromGHC (n :: Nat) :: Bin where

Convert from GHC Nat.

Example1 expression
:kind! FromGHC 7FromGHC 7 :: Bin= BP (B1 (B1 BE))

Equations

  • FromGHC n = FromGHC' (GhcDivMod2 n)

To fin Nat

familytype family FromNat (n :: Nat) :: Bin where

Convert from fin Nat.

Example1 expression
:kind! FromNat N.Nat5FromNat N.Nat5 :: Bin= BP (B1 (B0 BE))

Equations

Aliases