Currently, StreamFactory has several overloaded withFunctionName methods. One of these, takes two parameters: a String functionName, and a Class implementation type.
This second parameter is a little too generic, because it's really only ever valid for a small, small subset of classes (i.e. Class<? extends Expressible ). Narrowing the type of this parameter is a small step towards preventing accidental misconfiguration of a StreamFactory.