functor (O : Oracle.S-> S