On Apr 4, 2013, at 11:11 AM, Edward A Kmett <
ekmett@gmail.com> wrote:
> Note the eq lib and the type-eq/(:~:) GADT-based approach are interchangeable.
>
> You can upgrade a Leibnizian equality to a type equality by applying the Leibnizian substitution to an a :~: a.
>
> lens also has a notion of an Equality family at the bottom of the type semilattice for lens-like constructions, which is effectively a naked Leibnizian equality sans newtype wrapper.
>
> The only reason eq exists is to showcase this approach, but in practice I recommend just using the GADT, modulo mutterings about the name. :)
>
> That said those lowerings are particularly useful, if subtle -- Oleg wrote the first version of them, which I simplified to the form in that lib and they provide functionality that is classically not derivable for Leibnizian equality.
>
> Sent from my iPhone
>
> On Apr 4, 2013, at 3:01 AM, Erik Hesselink <
hesselink@gmail.com> wrote:
>
>> On Wed, Apr 3, 2013 at 6:08 PM, Richard Eisenberg <
eir@cis.upenn.edu> wrote:
>>> Comments? Thoughts?
>>
>> Edward Kmett 'eq' library uses a different definition of equality, but
>> can also be an inspiration for useful functions. Particularly, it
>> includes:
>>
>> lower :: (f a :~: f b) -> a :~: b
>>
>> Another question is where all this is going to live? In a separate
>> library? Or in base? And should it really be in a GHC namespace? The
>> functionality is not bound to GHC. Perhaps something in data would be
>> more appropriate.
>>
>> Erik
>>
>> _______________________________________________
>> Libraries mailing list
>>
Libraries@haskell.org
>>
http://www.haskell.org/mailman/listinfo/libraries
>