relaxed the definition of TypeCaster

To support more flexible type casting annotation in future