question: public static < T > Substitution < T > forArgs ( List < TypeVariable > parameters , List < T > arguments ) { if ( parameters . size ( ) != arguments . size ( ) ) { throw new IllegalArgumentException ( "number of parameters and arguments must agree" ) ; } Substitution < T > s = new Substitution < > ( ) ; for ( int i = 0 ; i < parameters . size ( ) ; i ++ ) { s . put ( parameters . get ( i ) , arguments . get ( i ) ) ; } return s ; }
target:  Create a substitution from the type parameters and the list of arguments.