Easily generating efficient instances for classes

Neil Mitchell ndmitchell at gmail.com
Tue Mar 2 14:04:44 EST 2010

Hi Christian,

No good examples I'm afraid. There are a few notes in README.txt (I
just pushed a few more notes). If you follow the process I'd welcome
any improvements to the documentation.

Thanks, Neil

On Tue, Mar 2, 2010 at 1:50 PM, Christian Hoener zu Siederdissen
<choener at tbi.univie.ac.at> wrote:
> 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 <jwlato at 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 at haskell.org
>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

More information about the Glasgow-haskell-users mailing list