GPL-2.0-or-later licensed by Oleg Grenrus
Maintained by Oleg.Grenrus
This version can be pinned in stack with:bin-0.1.3@sha256:899688014415c55fd5e4c89e06ec2dda59d209e9f49cc3353fa3cd4aa3d89069,2422

Module documentation for 0.1.3

Used by 1 package in lts-22.37(full list with versions):

This package provides binary natural numbers (Data.Bin); also utilities to work on the type level with DataKinds (Data.Type.Bin).

data Bin
    = BZ       -- ^ zero
    | BP BinP  -- ^ non-zero

data BinP
    = BE       -- ^ one
    | B0 BinP  -- ^ double
    | B1 BinP  -- ^ double plus 1

There are ordinals in Data.Bin.Pos module, as well as fixed width integers in Data.Wrd.

Another implementation is at https://hackage.haskell.org/package/nat, this differs in naming, and provides promoted variant.

Changes

Version history for bin

0.1.3

  • Add EqP and OrdP instances.
  • Add GShow Pos/P instances.
  • Better ‘PosP.toNatural’ implementation.

0.1.2

  • Add boring instances
  • Add EqBinP and EqBin type families
  • Add NFData instances
  • Add GEq, GNFData, GShow (from some package) instances for SBin and SBinP.

0.1.1

  • Explicitly mark all modules as Safe or Trustworthy.
  • fin-0.2 support.

0.1

  • First version. Released on an unsuspecting world.