
In order to make my records system practically useable, I need a type family
type family NameCmp n m
which totally orders datatypes. More precisely, it should return one of the following types:
data NameLT = NameLT data NameEQ = NameEQ data NameGT = NameGT
for each pair of datatypes n & m, according to whether n < m, n = m, or n > m in some global ordering. This ordering needs to be independent of the context, so it can't be affected by whatever imports there are in the current module. What I want to know is: does GHC give datatypes any global id I could use to generate such an ordering? Would fully qualified names work? Secondly (assuming it's possible) how easy would it be for me to write a patch to add NameCmp to GHC? Where in the source should I start looking? Thanks, Barney.