static Parser<TypeLiteral> wildcard(Parser<TypeLiteral> type) {
return Parsers.or(
curry(UpperBoundWildcard.class).sequence(phrase("? extends"), type),
curry(LowerBoundWildcard.class).sequence(phrase("? super"), type),
term("?").retn(new UpperBoundWildcard(null)));
}