One of the approximations used was generating type incorrect terms.
This commit also documents the problem at type_context.cpp, and describes a potential solution.