David Nadlinger:
If you are performing a »logically pure« operation which can't be proven to be so due to the limits of the type system, you can always just use a cast in the implementation.
casts are dangerous, better to avoid them where possible. Those papers try to avoid unsafe casts in user code and libraries.
Bye, bearophile
