I agree types start to get annoyingly complicated from here on.  But I found no reasonable way to break them apart (without giving up parametrization).  Any suggestions?