Add instances for (:~~:) mirroring those for (:~:)
authorRyan Scott <ryan.gl.scott@gmail.com>
Thu, 23 Feb 2017 23:09:58 +0000 (18:09 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 23 Feb 2017 23:57:17 +0000 (18:57 -0500)
commitc88b7c9a06e387c3b9bdb359b9e1e4f3a9fba696
treed0291e43a1506c10385a4b3e29b5d7cdae3d0b77
parent8d64395b43cb73d110767cab512a368b3db018de
Add instances for (:~~:) mirroring those for (:~:)

`(:~~:)`, the hetergeneous version of `(:~:)`, should have class
instances similar to those of `(:~:)`, especially since their
implementations aren't particularly tricky or surprising. This adds
them.

Reviewers: bgamari, austin, hvr, goldfire

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D3181
libraries/base/Control/Category.hs
libraries/base/Data/Data.hs
libraries/base/Data/Type/Coercion.hs
libraries/base/Data/Type/Equality.hs
testsuite/tests/annotations/should_fail/annfail10.stderr
testsuite/tests/typecheck/should_fail/T12921.stderr