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 generic_stripper(asker, update, property, object): if properties.check_firmly(asker, convert.irreducible(), representations.quote(property)): return asker.reply(value=keep_strip(strip=property))
def check(x): return properties.check_firmly(asker, req, representations.quote(x))
def check_trivial_default(asker, property): if properties.check_firmly(asker, irreducible(), property): return asker.reply(answer=T.from_bool(False))