Maps the value inside Some if it exists.
Option<U> map<U>(U Function(T value) fn) { if (this is Some<T>) { return Some(fn((this as Some<T>).value)); } return None<U>(); }