Sadly, since cascading drops the types, when we get to cascading, we have to cast. I think that is okay, since the users are always dealing with type safe code. None of the casts should ever fail, it is just that the compiler is not helping us prove that.