On April 3, 2019 7:06:11 AM EDT, "Jan van Brügge" <j...@vanbruegge.de> wrote: >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
Can you post a full branch? Nothing in particular looks wrong with what you posted here but the PrelNames code is also relevant. Cheers, - Ben _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs