more simplifying
a lot smaller now
About as small as I know how to make it.
Added comments for bug report.
Recursive discriminators work.