Hi Luke,

Even though you might have made up your mind already, here's some more info. If you want a
zipper that does not use Typeable (and thus runtime type comparison and casting, which are
potentially inefficient), you can use the zipper in Multirec [1].

Creating a zipper based on GHC.Generics should be easy taking the zipper based on
instant-generics [2], or you can just use Sean Leather's rendering [3].


Cheers,
Pedro

[1] http://hackage.haskell.org/package/multirec
[2] http://hackage.haskell.org/package/instant-zipper
[3] https://github.com/spl/generic-deriving-extras

On Thu, Apr 11, 2013 at 8:44 AM, Luke Evans <luke@eversosoft.com> wrote:
Thanks Roman.

I'll probably go with Data.Data then.  Certainly, I'm not looking for any significant distractions and I'll heed your cautionary note.
I read that GHC.Generics is fit and fast in comparison to SYB, but that's not really a big concern for me at the moment.
I just fell in to believing that GHC.Generics was the true religion given its apparent status as the adopted generics in GHC.

On 2013-04-10, at 11:24 PM, Roman Cheplyaka <roma@ro-che.info> wrote:

> Note that syz is essentially based on Data.Data, which is no less
> "official" than GHC.Generics. (The compiler can derive Data with
> -XDeriveDataTypeable.)
>
> You can write a zipper based on GHC.Generics, but it won't be a
> straightforward translation of syz (nor would it be a trivial
> undertaking).
>
> Roman

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