вот есть у нас промис: Promise<T> Promise.resolve(T): Promise<T> Promise.reject(any): Promise<T> Promise<T>#then(T -> G): Promise<G> Promise<T>#then(T -> Promise<G>): Promise<G>
использование монад подразумевает возможность писать общемонадный код, то есть вынести из разных вещей ОБЩИЙ интерфейс и работать с ними одинаково, писать обобщенные функции для любых монад
Во флоу есть номинал тайпинг и структурный тайпинг. Номинальный — это значит, что матчинг типов смотрит, является ли значение инстансом именно этого типа или его наследника. Структурный — это просто повторение интерфейса. Так вот. Может ли Maybe юзать структурный тайпинг?