[Haskell-cafe] Copying a syntax tree

Erik Hesselink hesselink at gmail.com
Tue Oct 2 10:26:50 CEST 2012


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



More information about the Haskell-Cafe mailing list