archives

Generating nested data types at runtime

Hi,

I'm currently implementing an algorithm which allows one to synthesise coalgebras given various local/global specifications, these being coalgebras of a covariant endofunctor T on Set^m where Set is the category of sets and m >= 0.

I have a problem regarding the genericity of what I am trying to implement, which I hope someone can shed some light on. Although I'm using Haskell, I'd be interested if any other languages are capable of what I ask. My problem is not with the algorithm itself but rather with an initial preprocessing stage.

In general terms I want to construct a collection of interleaving data types given some specification of how they need to be interleaved. This needs to happen at runtime. Previously for my MSc I implemented a fragment of this algorithm, at that time I got round this problem by generating the Haskell code with a script -- kind of an ugly solution. On the other hand I guess its hardly a common thing for the user to create their own data types.

I'd very much appreciate any pointers,

Cheers,

Rob