apply1<B, C>( ob: Supplier< Optional<B> >, f: ( a: A, b: B ) => C ): Optional<C> {
        return this.flatMap( a => ob().map( b => f( a, b ) ) );
    }