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