You could add {-# LANGUAGE DeriveFunctor #-}, and then add 'deriving
Functor' to all your data types (or you could of course manually
define your functor instances). Then what you want is just 'fmap
show'.

Erik

On Tue, Oct 2, 2012 at 9:55 AM, Sergey Mironov <ier...@gmail.com> wrote:
> 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?
>
> Thanks,
> Sergey
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to