More Higher-Kinded Typeclass Instances

Ryan Scott ryan.gl.scott at gmail.com
Tue Mar 29 13:10:22 UTC 2016


Well, if we're going to be thorough, we need to also get:

* Tuple types
* All (* -> *)-kinded datatypes in Data.Monoid
* Data.Type.Equality.(:~:) and Data.Type.Coercion.Coercion
* Fixed
* ST, STRef
* Chan
* MVar, IORef, TVar

A lot of these types' existing Eq/Ord/Read/Show instances are
currently derived, however, and you might find it incredibly tedious
to type all them out by hand (not to discourage you from going for it
if you need them now, but we warned). Given that the window for new
8.0 features is almost closed, perhaps it would be better to wait
until I've implemented an extension which derives these classes
automatically?

(I wanted to get such an extension implemented sooner, but time ran
out. I'll try to find some time to write a wiki page proposing a
design so that we can get the ball rolling soon after the 8.0 final
release.)

Ryan S.


More information about the ghc-devs mailing list