def zip(asker, req, a, b): if (properties.check_firmly(asker, is_empty(), a) or properties.check_firmly(asker, is_empty(), b)): return asker.reply(answer=empty()) zipped_first = T.pair(fields.get(asker, first(), a), fields.get(asker, first(), b)) zipped_tail = zip(fields.get(asker, tail(), a), fields.get(asker, tail(), b)) return asker.ask_tail(convert.convert(cons(zipped_first, zipped_tail), req))
def dict_cons_to_list(asker, key, value, other): return asker.reply(answer=cons(T.pair(key, value), from_dict(other)))