code: public FunctionType parameterize( FunctionType source, TypeVarToTypeMap actualParamByVarName, boolean bKeepTypeVars )
    {
      return new FunctionType( source, actualParamByVarName, bKeepTypeVars );
    }
docs: Create a new FunctionType based on the type parameters assigned to the type
  vars in actualParamByVarName.
  <p>
  It is important to note that this form of parameterization is different
  from calling getParameterizedType(). The latter creates a parameterization
  of a generic function e.g., function foo&lt;T&gt;() where T is a type var
  on the function.
  <p>
  This here method is for parameterizing a function type that has references
  to external type vars e.g., class Fred&lt;T&gt; { function foo( t : T ){} }
  where T is a type var on the containing class.
  
  @param source The raw form of a FunctionType having possible references to
  type vars defined in its containing class.
  @param actualParamByVarName A map of concrete types by type var name
  e.g., "T" -> String
  @param bKeepTypeVars Indicates whether or not a type var referenced in the
  source FunctionType that cannot be resolved via the actualParamByVarName
  map should remain as a TypeVariableType or should be converted to its
  bounding type.
  @return A parameterized version of the source FunctionType