[Haskell-cafe] Re: SYB and/or HList for XML, deserialization and collections

Chris Eidhof chris at eidhof.nl
Tue Dec 26 18:41:46 EST 2006

> == Deserialization ==
> HAppS periodically checkpoints application state to disk.   
> Developers may want to add or remove fields from their state types  
> for from data types used by their state types.  The current  
> solution is to have the developer assign a version number to  
> state.  If state changes then the developer provides dispatch to a  
> deserialization function based on that version number.
Well, it is indeed a fact of life that apps get updated, and data- 
models change. I think Ruby on Rails has implemented this quite good,  
using migrations. Basically, when you're using a migration, you  
specify the differences between two datatypes (or in their case,  
tables). If we found some way to determine those diffs automatically,  
and then require a function that maps the old types to the new  
types... but maybe I'm thinking too difficult. Just thinking out  
loud, really. We could encode the structure of the used datatypes  
into the state, and let HAppS automatically check if it needs to  

One of the concepts that I also like about RoR is that they have 3  
modes, development, production and test. Three different databases  
are used for the three modes, so you're not messing in your  
production database. Maybe this is something to think about, too.


More information about the Haskell-Cafe mailing list