<div dir="auto">Indeed, it's reasonable to mix and match Peano naturals with TypeLits. But that's easily done in a library that exposes a Haskell 98 interface over a TypeLits-based implementation. I don't think everyone should have to pay the potential efficiency price of Peano naturals for the sake of standards purity.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018, 2:37 PM Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On Mon, 17 Sep 2018, <a href="mailto:andrew.lelechenko@gmail.com" target="_blank" rel="noreferrer">andrew.lelechenko@gmail.com</a> wrote:<br>
<br>
> Instead of having<br>
> <br>
> ```<br>
> data E0<br>
> <br>
> instance HasResolution E0 where<br>
>     resolution _ = 1<br>
> ```<br>
> <br>
> and repeating it as many times as there are `E` datatypes, I propose to add the following type:<br>
> <br>
> ```<br>
> {-# LANGUAGE DataKinds      #-}<br>
> {-# LANGUAGE KindSignatures #-}<br>
> <br>
> import GHC.TypeLits (Nat, KnownNat, natVal)<br>
> <br>
> data E (n :: Nat)<br>
> ```<br>
<br>
I'd prefer a Haskell 98 solution and simply use type level Peano numbers <br>
and define E0, E3 etc. as type synonyms. If this is not sufficiently <br>
compatible we could setup a new module._______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank" rel="noreferrer">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>