Não estou familiarizado com a API de fluxo.
O termo "levantamento" vem da teoria das categorias. Em linguagens de programação como Haskell ou Scala, uma liftfunção assume uma função A => Be, de alguma forma, executa mágica para que a função levantada F[A] => F[B]possa ser aplicada a um functor ou mônada F[A].
Um exemplo concreto usando o Seqcontêiner de Scala : Suponha que temos uma função def double(x: Int): Int = 2 * xe uma sequência val xs = Seq(1, 2, 3). Não podemos double(xs)devido a tipos incompatíveis. Mas se obtivermos um val doubleSeq = liftToSeq(double), podemos fazer o doubleSeq(xs)que é avaliado como Seq(2, 4, 6). Aqui, liftToSeqpode ser implementado como
def liftToSeq[A, B](f: A => B): (Seq[A] => Seq[B]) =
(seq: Seq[A]) => seq.map(f)
O Seq(…)construtor também pode ser visto como uma operação de elevação, que eleva os valores 1, 2, 3em uma Seqinstância, permitindo usar abstrações de lista para esses valores.
As mônadas nos permitem encapsular o funcionamento interno de algum tipo, oferecendo uma interface estanque, mas compostável. O uso de uma representação levantada pode facilitar o raciocínio sobre um cálculo. Usar essas abstrações também significa que perdemos o conhecimento das especificidades abstraídas, mas são necessárias para fornecer uma implementação eficiente sob o capô (encontrar uma representação de execução adequada).