[Haskell-cafe] handling multiple versions of a data structure

Jeremy Shaw jeremy at n-heptane.com
Sat Dec 18 19:11:09 CET 2010


Nice.

Do you think there is any reason we would not be able to / want to use  
it with happstack ? I would love happstack-data to 'go away' and just  
use some library from hackage which does the same thing.

- jeremy

On Dec 17, 2010, at 3:57 AM, Erik Hesselink wrote:

> I've recently been playing with code for versioning data types. It's
> based on happstacks implementation, but uses type families to make it
> more modular. I've got some proof of concept code on github [1]. We're
> also writing a small library based on this at typLAB, which we'll
> probably release as well.
>
> Erik
>
> [1] https://gist.github.com/704109
>
> On Thu, Dec 16, 2010 at 19:26, Dmitry V'yal <akamaus at gmail.com> wrote:
>> Greetings,
>>
>> while developing my neural net simulator I stumbled upon a problem.
>>
>> I have a data type NeuralNet and use Show and Read instances for  
>> saving and
>> loading configurations. As time passed, I changed the data type, so  
>> the
>> program can no longer load files saved in previous versions.
>>
>> I want fix it. My current idea looks as follows. I'm going to  
>> create a bunch
>> of types NN1, NN2, NN3..NNn for different versions and write  
>> converters c12
>> :: N1 -> N2, c23 :: N2 -> N3 and so on.
>>
>> But how to organize the whole process of parsing String into NNn so  
>> it's
>> easy to change formats?
>> Something based on using a list of parsers
>> [read, c43 . read, c43 . c23 . read, c43, c23 . c12 . read, c43 .  
>> c32 . c21
>> . read]
>>
>> looks rather verbose and grows quadratically with N.
>>
>> I'm sure there must be a more elegant way. Any ideas?
>>
>> Dmitry
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe




More information about the Haskell-Cafe mailing list