Changes to Typeable
marlowsd at gmail.com
Mon Feb 13 21:27:37 CET 2012
On 13/02/12 18:16, Edward Kmett wrote:
> You could probably get away with something like
> data Proxy = Proxy a
> class Typeable a where
> typeOfProxy :: Proxy a -> TypeRep
> typeOf :: forall a. Typeable a => a -> TypeRep
> typeOf = typeOfProxy (Proxy :: Proxy a)
> which being outside of the class won't contribute to the inference of
> 'a's kind.
> This would let you retain the existing functionality.
Simon's version has this:
typeOf :: forall a. Typeable a => a -> TypeRep
typeOf x = typeRep (getType x) where
getType :: a -> Proxy a
getType _ = Proxy
(your version is clearer, though)
I'm assuming there's no significance behind your renaming of 'typeRep'
> On Mon, Feb 13, 2012 at 8:33 AM, Simon Marlow <marlowsd at gmail.com
> <mailto:marlowsd at gmail.com>> wrote:
> On 10/02/2012 16:03, Simon Peyton-Jones wrote:
> The page describes an improved implementation of the Typeable
> class, making use of polymorphic kinds. Technically it is
> straightforward, but it represents a non-backward-compatible
> change to a widely used library, so we need to make a plan for
> the transition.
> Comments? You can fix typos or add issues directly in the wiki
> page, or discuss by email
> I've no objections to the plan itself, except that typeOf itself
> seems useful, so is there any need to deprecate it?
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.__org
> <mailto:Glasgow-haskell-users at haskell.org>
More information about the Glasgow-haskell-users