more verbose type resolver (see #2)