Fixed compound type + method dependent types type substitution, code still ugly, but works better.