@hackage cmptype0.2.0.0

Compare types of any kinds

cmptype

Hackage

Dedication

Comparison is an act of violence against the self.

--Iyanla Vanzant

Overview

cmptype provides a magical type family that lets you compare types:

type family CmpType (a :: k) (b :: k) :: Ordering

When you turn on the -fplugin=Type.Compare.Plugin flag, it will let you compare arbitrary types. Why would you want such a thing? Probably because you want to write a type-level container that isn't a fucking list!

Acknowledgments

Big thanks to Boris Rozinov for the initial idea, and for making as much coffee as I could drink while I wrote it. Also thanks to Christiaan Baaij and Matt Pickering for their indispensable help convincing GHC to do the right thing here.