[GHC] #12422: Add decidable equality class
GHC
ghc-devs at haskell.org
Fri Jul 22 19:11:30 UTC 2016
#12422: Add decidable equality class
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Core Libraries | Version: 8.0.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Iceland_jack):
Replying to [comment:3 goldfire]:
> Yes, this is a higher-rank kind!
Yikes! :)
> 1. Making `:~:` heterogeneous would likely break client code.
Figured as much. Is there any way to combine visible kind application
(#12045) and unifying different type applications (#11385), let's say if I
want to write something like
{{{#!hs
-- (:~~:) :: forall k1 k2. k1 -> k2 -> Type
type (:~:) = (:~~:) @k @k :: k -> k -> Type
-- using your syntax (visible kind abstraction?)
type (:~:) = \@k -> (:~~:) @k @k
}}}
> 2. We should have `:~~:` in the standard library. But I was too
exhausted from implementing `TypeInType` to start this debate on the
libraries mailing list. We should really put it in for 8.2.
Should I add it to `Data.Type.Equality` on Phab?
----
Should we rewrite `Const :: Type -> k -> Type` to have the kind ...?
{{{#!hs
data Const :: Type -> forall k. k -> Type where
Const :: { getConst :: a } -> Const a b
}}}
Is there any way to define an `HTestEquality (Const e)` instance?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12422#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list