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

Erik Hesselink hesselink at gmail.com
Sat Dec 18 19:21:57 CET 2010


No, I don't think so. It uses some extensions, but happstack-data
already does, so that shouldn't be a problem. We don't have a
releasable library yet, but when we do, it will have a versioned
binary implementation, just like happstack-data does now. Perhaps even
binary compatible with it, though I'm not sure about that.

Erik

On Sat, Dec 18, 2010 at 19:11, Jeremy Shaw <jeremy at n-heptane.com> wrote:
> 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