That is interesting--I hadn't thought of deriving (Eq) in these terms.
Unfortunately it seems that user-defined typeclasses can't use the deriving
paradigm. Furthermore, while Functors can be derived in a consistent way,
Applicatives can't, which means that deriving isn't strong enough for use
in the implicit mapping model I described.

Marshall

On Sun, Feb 5, 2012 at 4:07 PM, Boyko Bantchev <boyk...@gmail.com> wrote:

> On 5 February 2012 20:04, Marshall Lochbaum <mwlochb...@gmail.com> wrote:
> > ...
> > I'm not sure what you mean about Haskell's "deriving" descriptor. If I
> > understand typeclasses at all, what "deriving" accomplishes is rather
> weak
> > and not at all related to implicit mapping.
>
> Here is a typical example.
> The following is a datatype describing a binary tree with nodes
> of type a.
>        data Btree a = E | Bt a (Btree a) (Btree a) deriving Eq
> It derives from Eq, so trees can be compared for equality by
> comparing the values at their nodes pairwise: if t1 and t2 are
> trees of, say, integers, then t1==t2 is computed by applying ==
> pairwise on the nodes of t1 and t2, i.e. by implicitly mapping ==.
> If the nodes are themselves trees or other complex structures,
> the mapping takes place first at the items of the items, etc.
> This is not the usual mapping, as the result of t1==t2 is a single
> Boolean rather than a tree of Booleans (a more precise term is
> ‘lifting’) but essentially it is (implicit) mapping anyway.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to