On Tue, Feb 14, 2012 at 11:18 AM, Iavor Diatchki <iavor.diatchki@gmail.com> wrote:
Hello,
On Mon, Feb 13, 2012 at 5:32 PM, Edward Kmett
<ekmett@gmail.com> wrote:
There are fewer combinators from commonly used classes for working with the left argument of a bifunctor, however.
I think that the bifunctor part of Bas's version is a bit of a red herring. What I like about it is that it overloads exactly what needs to be overloaded---the representation of the type---without the need for any fake parameters. To make things concrete, here is some code:
> newtype TypeRepT t = TR TypeRep
>
> class Typeable t where
> typeRep :: TypeRepT t
>
> instacne Typeable Int where typeRep = TR type_rep_for_int
> instance Typeable [] where typeRep = TR type_rep_for_list
I have no problem with this version either, although the Proxy type is useful for a lot of other purposes, while this type is single use.
-Edward