toOptional(): Optional<A> {
        return this.self.isLeft ? Optional.apply(<A>this.self.value) : None;
    }