PROPOSAL: Add 'Natural' type to base:Data.Word
David Feuer
david.feuer at gmail.com
Tue Nov 11 19:06:30 UTC 2014
I'm definitely in favor of this idea. How (if at all) would you like these
term-level natural numbers to relate to the type-level ones?
On Tue, Nov 11, 2014 at 4:35 AM, Herbert Valerio Riedel <hvr at gnu.org> wrote:
> Hello CLC et al.,
>
> I hereby suggest to add a type for encoding term-level naturals
>
> data Natural = <opaque/hidden>
> deriving (...the usual standard classes...)
>
> to `base:Data.Word` module
>
> Motivation
> ==========
>
> - GHC 7.10 is planned to ship with integer-gmp2[2] as its default
> `Integer` lib, whose low-level primitives are based on *unsigned*
> BigNums. And 'Natural' type for integer-gmp2 can be implemented
> directly w/o the overhead of wrapping an `Integer` via
>
> data Natural = NatS# Word# | NatJ# !PrimBigNat#
>
> as well as having a twice as large domain handled via the small-word
> constructor and thus avoiding FFI calls into GMP.
>
> - GHC/`base` already provides type-level naturals, but no term-level
> naturals
>
> - Remove the asymmetry of having an unbounded signed `Integer` but no
> unbounded /unsigned/ integral type.
>
> Also, `Data.Word` has been carrying the following note[1] for some
> time now:
>
> > It would be very natural to add a type Natural providing an
> > unbounded size unsigned integer, just as Integer provides unbounded
> > size signed integers. We do not do that yet since there is no
> > demand for it.
>
>
>
> Discussion period: ~10 days (GHC 7.10 RC freeze is scheduled for Nov 21st)
>
> Cheers,
> hvr
>
> [1]:
> http://hackage.haskell.org/package/base-4.7.0.1/docs/Data-Word.html#g:3
>
> [2]: https://phabricator.haskell.org/D82
> https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20141111/cd689dc1/attachment.html>
More information about the Libraries
mailing list