[Haskell-cafe] A Generic Ordering over Types

Justin Paston-Cooper paston.cooper at gmail.com
Sun Dec 29 07:51:16 UTC 2019


Looks like cmptype wins on genericity. Out of interest, is there any
alternative these days to writing the tuple instances of CmpType
explicitly?

On Sat, 28 Dec 2019 at 23:29, Michael Sloan <mgsloan at gmail.com> wrote:
>
> Cool approach!
>
> cmptype does something similar, but requires a ghc plugin: https://github.com/isovector/type-sets/tree/master/cmptype
>
> I suppose one advantage of cmptype is that it can work with types that cannot derive Generic, such as GADTs.
>
> -Michael
>
> On Sat, Dec 28, 2019 at 3:23 AM Justin Paston-Cooper <paston.cooper at gmail.com> wrote:
>>
>> Hello,
>>
>> I've defined a module which defines a Data.Type.Ordering over types
>> which are instances of Generic:
>> https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs.
>> I was considering submitting it to Hackage if anyone finds this
>> useful.
>>
>> I am using it in conjunction with Data.Type.Set (type-level-sets),
>> which requires an ordering over the used types.
>>
>> The ordering works by first comparing the package, then the module,
>> then the type name. I take it that the ordering as defined is correct
>> over all types which are an instance of Generic.
>>
>> I wanted to check first whether this is done anywhere else, or in a
>> different, better way. Can anyone advise?
>>
>> Cheers,
>>
>> Justin
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.


More information about the Haskell-Cafe mailing list