Receiving type information from environment instead of hardcoding.

Rinat Stryungis lazybonesxp at gmail.com
Sun Jun 14 11:28:07 UTC 2020


Hi. I have a question about a possible way of unification of Nat and
Natural. I've almost done that, but only in case of using integer-gmp.
If I use integer-simple there is a completely different definition of
Natural.

How I construct now naturalTyCon (to make `naturalTy` to use it instead of
`typeNatKind`) :

```naturalTyCon :: TyCon
naturalTyCon = pcTyCon naturalTyConName Nothing [] [natSDataCon,natJDataCon]

natSDataCon :: DataCon
natSDataCon = pcDataCon natSDataConName [] [wordPrimTy] naturalTyCon

etc...
```
Now I have to check`DynFlags` in a few places to reimplement `naturalTyCon`
in case of using `integer-simple`.

Is there a way to avoid hardcoding of `naturalTy`?
My colleague said that it would be nice to get `naturalTy` from an
environment by  something like `lookupTyCon`,
but there are many functions whose don't use any environment like functions
from `typeNatTyCons` list in `GHC.Builtin.Types.Literals`.

Now I am going to use `DynFlags` checking, but it looks like an ugly way...

-- 
Best regards.
Rinat Striungis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20200614/e24def1b/attachment.html>


More information about the ghc-devs mailing list