code: boolean declareTypeTransformation(String newName, Node expr) {
      lazyInitInfo();
  
      if (isTemplateTypeName(newName)) {
        return false;
      }
      if (info.typeTransformations == null){
        // A LinkedHashMap is used to keep the insertion order. The type
        // transformation expressions will be evaluated in this order.
        info.typeTransformations = new LinkedHashMap<>();
      } else if (info.typeTransformations.containsKey(newName)) {
        return false;
      }
      info.typeTransformations.put(newName, expr);
      return true;
    }
docs: Declares a type transformation expression. These expressions are described
  using a {@code @template} annotation of the form
  {@code @template T := TTL-Expr =:}
  
  @param newName The name associated to the type transformation.
  @param expr The type transformation expression.