src/core/se/jbee/inject/bootstrap/Macros.java
@SuppressWarnings("unchecked")
	public <T> Macros with(Macro<T> macro) {
		Class<?> type = Type.supertype(Macro.class,
				Type.raw(macro.getClass())).parameter(0).rawType;
		return with((Class<? super T>) type, macro);
	}
@SuppressWarnings("unchecked")
	public <T> Macros with(Macro<T> macro) {
		Class<?> type = Type.supertype(Macro.class,
				Type.raw(macro.getClass())).parameter(0).rawType;
		return with((Class<? super T>) type, macro);
	}
Uses the given {@link Macro} and derives the {@link #with(Class, Macro)}
type from its declaration. This is a utility method that can be used as
long as the {@link Macro} implementation is not generic.

@param macro No generic macro class (e.g. decorators)
@return A set of {@link Macros} containing the given one for the type
derived from its type declaration.