This code has always made my head hurt with these variable names -- I need to keep telling myself that paramType is NOT the type of param. Again, more distinct names (source/target or declared/actual) would help readability.