[Haskell-cafe] Copying a syntax tree

Sergey Mironov ierton at gmail.com
Tue Oct 2 09:55:22 CEST 2012

Hi! I have a syntax tree defined like this:

> data A a = A Int Int (B a)
> data B a = B String String (C a)
> data C a = C Int Int (D a)

and so on, all the data are parametrized with a type variable. This variable
is actually used as a field in the very end of a hierarchy:

> data D a = D Int a

Now I have to write a function which would copy (A Int) to (A String). Is it
possible to do so using TH/syb without writing

copyA (A i1 i2 b) = A i1 i2 (copyB b)
copyB = ...
copyC = ...
copyD (D i a) = D i (show a)

Could you provide me with a hint?


More information about the Haskell-Cafe mailing list