Conjuring JQuery adiado com encantamentos monádicos

Inspirado porist (excelente) discussão sobre o uso de Promessas em javascript, estou tentando descobrir como eu poderia usar o Adiado para encadear funções assíncronas e não assíncronas, para evitar pagar o imposto de retorno de chamada ao usar meu 'Global storage 'code.

Eu tenho algumas perguntas relacionadas a isso, mas eu as colocarei juntas aqui, porque o contexto é o mesm

Uma coisa que não consigo entender é como fazer um diferido de algo que não é assíncrono - ou seja, como faço para pegar um valor, envolvê-lo em uma promessa e devolvê-lo diretamente? a -> M<a>)

Além disso, como posso pegar uma função assíncrona e envolvê-la para que ela retorne seu resultado diretamente, mas envolvida em uma promessa? (a -> b) -> (a -> M<b>))

Última pergunta, para malucos monádicos - existe um nome padrão para essa função?[a] -> (a -> M<b>) -> M<[b]>

questionAnswers(3)

yourAnswerToTheQuestion