Hi Oscar,

On Sat, May 15, 2010 at 22:19, Oscar Finnsson <oscar.finnsson@gmail.com> wrote:

(...)

I guess my questions are:

1. Is it possible to combine GADTs with Scrap your Boilerplate?

Your GADT encodes an existential datatype. The closest attempt to encode existential types in (something like) SYB that I know of is in Section 5.3 of Alexey's PhD thesis [1]. Having said that, he uses the spine view, which makes the generic view in SYB explicit, but this has never been packaged as a library. So I'm afraid the answer is "no". The link above might still be useful for your understanding of why this is a complex problem, though.


Cheers,
Pedro

[1] http://igitur-archive.library.uu.nl/dissertations/2009-0518-200422/UUindex.html