code: public static Type getBaseClass(Type type, Class baseType) {
          return baseClassFinder.visit(type,baseType);
      }
docs: Gets the parameterization of the given base type.
  
  <p>
  For example, given the following
  <pre>{@code
  interface Foo<T> extends List<List<T>> {}
  interface Bar extends Foo<String> {}
  }</pre>
  This method works like this:
  <pre>{@code
  getBaseClass( Bar, List ) = List<List<String>
  getBaseClass( Bar, Foo  ) = Foo<String>
  getBaseClass( Foo<? extends Number>, Collection ) = Collection<List<? extends Number>>
  getBaseClass( ArrayList<? extends BigInteger>, List ) = List<? extends BigInteger>
  }</pre>
  
  @param type
  The type that derives from {@code baseType}
  @param baseType
  The class whose parameterization we are interested in.
  @return
  The use of {@code baseType} in {@code type}.
  or null if the type is not assignable to the base type.