Fwd: [GHC] #7704: Phantom types break new polykind Typeable with either StandaloneDeriving or AutoDeriveTypeable
José Pedro Magalhães
jpm at cs.uu.nl
Tue Feb 19 11:04:04 CET 2013
Hi Simon,
How should an instance of Typeable for a polykinded tycon look like? E.g.
if we have
data Proxy (a :: k) = Proxy
-- Proxy :: forall (k :: BOX). k -> *
I suppose we want an instance
forall k. instance Typeable (k -> *) (Proxy k)
Right? So the universally quantified kind variables of the tycon should end
up universally
quantified in the instance as well. How does this translate to the ds_tvs,
ds_tys, and
ds_tc_args arguments of a DerivSpec?...
Thanks,
Pedro
---------- Forwarded message ----------
From: GHC <cvs-ghc at haskell.org>
Date: Mon, Feb 18, 2013 at 8:42 PM
Subject: [GHC] #7704: Phantom types break new polykind Typeable with either
StandaloneDeriving or AutoDeriveTypeable
To:
Cc: ghc-tickets at haskell.org
#7704: Phantom types break new polykind Typeable with either
StandaloneDeriving or
AutoDeriveTypeable
-----------------------------+----------------------------------------------
Reporter: nwf | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.7 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
This test program, reduced from an attempt to bring ekmett's tagged
package to HEAD,
{{{
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE AutoDeriveTypeable #-}
newtype Tagged s b = Tagged { unTagged :: b }
}}}
results in
{{{
GHCi, version 7.7.20130218: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main ( typeable.hs, interpreted )
typeable.hs:5:1:
Derived typeable instance must be of form (Typeable Tagged)
In the stand-alone deriving instance for
`Data.Typeable.Internal.Typeable Tagged'
}}}
This message is also emitted if I replace `AutoDeriveTypeable`
`StandaloneDeriving` and `deriving instance Typeable Tagged`.
However, a "deriving (Typeable)" clause on the newtype definition works
just fine.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7704>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
ghc-tickets mailing list
ghc-tickets at haskell.org
http://www.haskell.org/mailman/listinfo/ghc-tickets
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130219/00358936/attachment-0001.htm>
More information about the ghc-devs
mailing list