Is it worth checking if we are just going to throw an ExchangeException instead of a ClassCastException? Either way the user will need to fix their code.