Great! That was pretty fast :)
Hi Ozgur,
Ozgur Akgun wrote:
No reason at all. I just generalized the Template Haskell macros. They now support:I've already implemented a toy example and it worked great. Now I am trying
to use your library in a more serious piece of code, and I've realised that
defineIsomorphisms doesn't support record constructors. To be precise, you
handle the case for NormalC in the code, however you do not handle RecC. I
don't think this will be a difficult thing to add. Is there any reason for
you not to support RecC?
* newtypes
* infix constructors
* record constructors
Infix constructors are only support by constructorIso, though, not by defineIsomorphisms, because I can't think of a good automatic naming scheme. Suggestions welcome.
The code is on hackage.
There are still some constructors which are not supported: constructors of GADTs as well as data or newtype instances, and constructors with existentials. I would need to think about typing issues before supporting these.
Tillmann