pakoito
fun <A, B> merge( op1: () -> A, op2: () -> B): Eval<Tuple2<A, B>> = applicative().tupled(defer(op1), defer(op2)).ev()