# cmptype
## Dedication
> Comparison is an act of violence against the self.
>
> Iyanla Vanzant
## Overview
`cmptype` provides a magical type family that lets you compare types:
```haskell
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][oofp] for the initial idea, and for making as much
coffee as I could drink while I wrote it. Also thanks to [Christiaan
Baaij][chistiaanb] and [Matt Pickering][mpickering] for their indispensable help
convincing GHC to do the right thing here.
[oofp]: https://github.com/oofp
[chistiaanb]: https://christiaanb.github.io/
[mpickering]: http://mpickering.github.io/