<div dir="ltr">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. <div>If I use integer-simple there is a completely different definition of Natural. </div><div><br></div><div>How I construct now naturalTyCon (to make `naturalTy` to use it instead of `typeNatKind`) : </div><div><br></div><div>```naturalTyCon :: TyCon<br>naturalTyCon = pcTyCon naturalTyConName Nothing [] [natSDataCon,natJDataCon]<br><br>natSDataCon :: DataCon<br>natSDataCon = pcDataCon natSDataConName [] [wordPrimTy] naturalTyCon</div><div><br></div><div>etc... </div><div>```</div><div>Now I have to check`DynFlags` in a few places to reimplement `naturalTyCon` in case of using `integer-simple`. </div><div><br></div><div>Is there a way to avoid hardcoding of `naturalTy`? </div><div>My colleague said that it would be nice to get `naturalTy` from an environment by  something like `lookupTyCon`, </div><div>but there are many functions whose don't use any environment like functions from `typeNatTyCons` list in `GHC.Builtin.Types.Literals`. </div><div><br></div><div>Now I am going to use `DynFlags` checking, but it looks like an ugly way... </div><div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Best regards.</div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Rinat Striungis </div></div></div>