var R = require('ramda')
var F = require('fluture')
// some async step
const transformQux =
F.of
// some process on the object after the async step
const thirdStep = R.map(R.when(R.is(String), R.toUpper))
const a =
R.pipe(
R.evolve({
foo: R.filter(R.has('bar'))
,qux: transformQux
})
,o => o.qux.map(R.objOf('qux')).map(R.merge(o))
,R.map(thirdStep)
)
a({ foo: [{bar: true}], qux: 'hello' }).fork(console.error, console.log)