Proposal: Introduce GHC.TypeNats module with natVal :: forall n proxy. KnownNat n => proxy n -> Natural

Ben Gamari ben at
Tue Jan 24 14:05:09 UTC 2017

Oleg Grenrus <oleg.grenrus at> writes:

> Currently we have in the GHC.TypeLits module
> natVal :: forall n proxy. KnowNat n => proxy n -> Integer
> However, the result integer is never negative. Numeric.Natural module is
> in base since base-
This sounds quite reasonable to me and given how many much larger
8.2 changes are still not in the tree, I think it is in-scope for the
release. I agree with David that it would make sense if the evidence
itself were a Natural.

I'm not terribly concerned about compatibility in the face of
unsafeCoerce. We should be certain to clearly document the change


- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <>

More information about the Libraries mailing list