Change the value of Option from type T to type Z based on the value of Option<T> using function f.
T
Z
Option<T>
f
Option<Z> extend<Z>(Z Function(Option<T> t) f);