I'd like to implement val foo : ?f:('a -> 'b) -> 'a -> 'b where the default for f is identity. Is there now a way to do this with all the new features of OCaml?