# Copyright (c) PARRRATE T&V 2021. All rights reserved. from bu4.evaluation.constructs.evalue import EValue from bu4.evaluation.constructs.proxy import eproxy from bu4.evaluation.sync import sync __all__ = ('to_bool', 'with_common_interface',) def to_bool(_01): return _01(True)(False) def with_common_interface(value: EValue): value = sync(value.call(eproxy(0))) value = sync(value.call(eproxy(1))) value = sync(value.call(eproxy(lambda a: lambda b: a + b))) value = sync(value.call(eproxy(lambda n: lambda x: lambda y: x if n == 0 else y))) value = sync(value.call(eproxy(lambda n: lambda x: lambda y: x if n & 1 else y))) value = sync(value.call(eproxy(lambda n: n >> 1))) return value