updated macros

I fixed a bug in union type parsing that prevented compilation in some cases(only when using this feature).

I also found a clean(ish) way do do recursive structures and have macros generate code for persisting them. This Solution is to put explicit type annotations on implicit handlers. This way compiler can know the types before running macros. So this means there are no cyclic dependencies between macros and stuff just works. And if you use is the "ADT pattern" then handler is just a oneliner that generates everything. 
This is now in documentation. Sample included.