The only way seems to be implicit cast operators from the derived type to the base one so that operators can be used.