Changes to Typeable

Simon Marlow 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' 
to 'typeOfProxy'?

Cheers,
	Simon


> 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:
>
>         Friends
>
>         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.
>
>         http://hackage.haskell.org/__trac/ghc/wiki/GhcKinds/__PolyTypeable
>         <http://hackage.haskell.org/trac/ghc/wiki/GhcKinds/PolyTypeable>
>
>         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?
>
>     Cheers,
>
>             Simon
>
>     _________________________________________________
>     Glasgow-haskell-users mailing list
>     Glasgow-haskell-users at haskell.__org
>     <mailto:Glasgow-haskell-users at haskell.org>
>     http://www.haskell.org/__mailman/listinfo/glasgow-__haskell-users
>     <http://www.haskell.org/mailman/listinfo/glasgow-haskell-users>
>
>




More information about the Glasgow-haskell-users mailing list