Needing to cast from an ``++interface++`` to a concrete type indicates that something is wrong with the abstractions in use, likely that something is missing from the ``++interface++``. Instead of casting to a discrete type, the missing functionality should be added to the ``++interface++``. Otherwise there is a risk of runtime exceptions.
