some elementary functions are implemented as upcasts from observables