
Hi, when trying to get familiar with the GHC code base for my Bachelor's thesis. I followed the GHC Wiki, especially the case study about the bool type. Now I wanted to add a new kind and a new type inhabiting this kind (without having to expose a data constructor, so without datatype promotion). So in TysWiredIn.hs I added the new TyCons and added them to the list of wired-in types: -- data Row a b rowKindCon :: TyCon rowKindCon = pcTyCon rowKindConName Nothing [alphaTyVar, betaTyVar] [] rowKind :: Kind rowKind = mkTyConTy rowKindCon -- data RNil :: Row a b rnilTyCon :: TyCon rnilTyCon = mkAlgTyCon rnilTyConName [] rowKind [] Nothing [] (mkDataTyConRhs []) (VanillaAlgTyCon (mkPrelTyConRepName rnilTyConName)) False rnilTy :: Type rnilTy = mkTyConTy rnilTyCon I also added two new empty data decls to ghc-prim, but if I inspect the kind of RNil it is not Row, but Type. So I think I am either understanding res_kind wrong or I have to do something completely different. I am also not sure how to verify that the code in TysWiredIn.hs is working at all, from all what I can tell it could just be the declarations in ghc-prim that result in what I see in ghci. Thank you and sorry for my beginner question Jan