functor
(
O
:
Oracle
.
S
)
->
S