functor (OP : OptionalParameters) -> S