
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
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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe