
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.

Hi Barney,
This may be of interest, since all types already have an Int
associated with them:
http://haskell.org/ghc/docs/latest/html/libraries/base/Data-Typeable.html#v%...
Thanks
Neil
On 9/18/07, Barney Hilken
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.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hi Neil, thanks for the response. The problem is this: "It is in the IO monad because the actual value of the key may vary from run to run of the program" (taken from the web page). Since I'm relying on the order, not just equality, this will seriously screw things up, because my records are done at compile time.
participants (2)
-
Barney Hilken
-
Neil Mitchell