run<E>( f: ( a: A, b: B, c: C, d: D ) => E ): Optional<E> {
        return this.oa.apply3( this.ob, this.oc, this.od, f );
    }