Re: Easily generating efficient instances for classes

2010-03-02 Thread Neil Mitchell
Hi

Derive generates declarations - they can be instances, classes, data
types, functions, type synonyms etc.

Thanks, Neil

On Mon, Mar 1, 2010 at 10:32 AM, John Lato jwl...@gmail.com wrote:
 From: Christian H?ner zu Siederdissen

 Hi,

 I am thinking about how to easily generate instances for a class. Each
 instance is a tuple with 1 or more elements. In addition there is a
 second tuple with the same number of elements but different type. This
 means getting longer and longer chains of something like (...,x3*x2,x2,0).

 - template haskell?
 - CPP and macros?

 Consider arrays with fast access like Data.Vector, but with higher
 dimensionality. Basically, I want (!) to fuse when used in Data.Vector
 code.

 (shameless plug) You may want to look at my AdaptiveTuple package,
 which does something very similar to this.  I used Template Haskell
 because AFAIK neither generic approaches nor DrIFT/Derive will
 generate data decls.

 If all you need are the instances, then DrIFT or Derive would be my
 recommendations.

 Cheers,
 John
 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Easily generating efficient instances for classes

2010-03-02 Thread Christian Hoener zu Siederdissen
Thanks everybody for the answers.

Right now, it looks like this:
the indextype is abstracted out and I plan for Data.Ix and my own Data.FastIx 
(or however to call it).

As I don't plan on creating all instances myself, Neils derive package looks 
good -- once I
understand it completely; which I need to as I need instances of my own class. 
Is there a tutorial
on creating instances for own stuff, or should I go by the examples like 
Functor?

The code in AdaptiveTuple has one advantage: it looks easier to get started 
producing instances. (No
need to get to know another package).

Btw. it is a bit disappointing (for me) that Data.Ix is almost as fast as my 
FastIx ;-) (as in: most
people don't care about the difference)



Something else: was there a resource about library naming? otherwise it is 
going to be
vector-ixtables (someone a better idea?)


Thanks again,
Christian


On 03/02/2010 02:30 PM, Neil Mitchell wrote:
 Hi
 
 Derive generates declarations - they can be instances, classes, data
 types, functions, type synonyms etc.
 
 Thanks, Neil
 
 On Mon, Mar 1, 2010 at 10:32 AM, John Lato jwl...@gmail.com wrote:
 From: Christian H?ner zu Siederdissen

 Hi,

 I am thinking about how to easily generate instances for a class. Each
 instance is a tuple with 1 or more elements. In addition there is a
 second tuple with the same number of elements but different type. This
 means getting longer and longer chains of something like (...,x3*x2,x2,0).

 - template haskell?
 - CPP and macros?

 Consider arrays with fast access like Data.Vector, but with higher
 dimensionality. Basically, I want (!) to fuse when used in Data.Vector
 code.

 (shameless plug) You may want to look at my AdaptiveTuple package,
 which does something very similar to this.  I used Template Haskell
 because AFAIK neither generic approaches nor DrIFT/Derive will
 generate data decls.

 If all you need are the instances, then DrIFT or Derive would be my
 recommendations.

 Cheers,
 John
 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Easily generating efficient instances for classes

2010-03-01 Thread John Lato
 From: Christian H?ner zu Siederdissen

 Hi,

 I am thinking about how to easily generate instances for a class. Each
 instance is a tuple with 1 or more elements. In addition there is a
 second tuple with the same number of elements but different type. This
 means getting longer and longer chains of something like (...,x3*x2,x2,0).

 - template haskell?
 - CPP and macros?

 Consider arrays with fast access like Data.Vector, but with higher
 dimensionality. Basically, I want (!) to fuse when used in Data.Vector
 code.

(shameless plug) You may want to look at my AdaptiveTuple package,
which does something very similar to this.  I used Template Haskell
because AFAIK neither generic approaches nor DrIFT/Derive will
generate data decls.

If all you need are the instances, then DrIFT or Derive would be my
recommendations.

Cheers,
John
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Easily generating efficient instances for classes

2010-02-28 Thread Neil Mitchell
As Bulat says, the Derive package might be a good way to go. I am
happy to accept any new derivations, and you get lots of things for
free - including writing your code using the nice haskell-src-exts
library, preprocessor support, TH support etc.

Thanks, Neil

On Thu, Feb 25, 2010 at 8:57 AM, Bulat Ziganshin
bulat.zigans...@gmail.com wrote:
 Hello Christian,

 Thursday, February 25, 2010, 3:57:44 AM, you wrote:

 I am thinking about how to easily generate instances for a class. Each

 it's called generic programing. just a few overviews on this topic:

 Libraries for Generic Programming in Haskell
 http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-025.pdf

 Comparing Approaches to Generic Programming in Haskell
 http://www.cs.uu.nl/~johanj/publications/ComparingGP.pdf

 Derive package is probably the easiest way

 Template Haskell is also good although a bit too complex. my own pets:
 http://www.haskell.org/bz/th3.htm
 http://www.haskell.org/bz/thdoc.htm

 --
 Best regards,
  Bulat                            mailto:bulat.zigans...@gmail.com

 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users