import sys import libfoolang ctx = libfoolang.AnalysisContext() u = ctx.get_from_buffer('main.txt', b""" (T) foo { a b } (T U) old_bar { c d } (T U) new_bar { e f } (V) old_baz { g } (V) new_baz { h } """) if u.diagnostics: for d in u.diagnostics: print(d) sys.exit(1) foo, old_bar, new_bar, old_baz, new_baz = u.root rebound1 = foo.p_rebind(old_bar, new_bar) rebound2 = foo.p_rebind(old_bar, new_bar) rebound3 = foo.p_rebind(old_baz, new_baz) for e1, e2 in [ (rebound1, rebound1), (rebound1, rebound2), (rebound1, rebound3), ]: print('{} vs. {}'.format(e1, e2)) print(' identity check: {}'.format(e1 is e2)) print(' equality check: {}'.format(e1 == e2)) print(' inequality check: {}'.format(e1 != e2)) print('main.py: Done.')