X10

Represent function type guards in the function type object, rather than in the method def of the base interface