bug fixed: do not substitute type parameters twice
through final argument check
bug fixed: analyze arguments in FREE expression position