def post_align(self, t1, t2, t):
    "\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n        [ t1 ] -- s       [ t1 ]         s\n                                ⟍     ⟋\n                     ==>         [ t ]\n                                ⟋     ⟍\n        [ t2 ] -- s'      [ t2 ]        s'\n\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n        "
    t1 = T(t1)
    t2 = T(t2)
    t = T(t)
    succ1 = self.successors(t1)
    for s in succ1:
        for (key, data) in self[t1][s].iteritems():
            assert (not data)
    succ2 = self.successors(t2)
    for s in succ2:
        for (key, data) in self[t2][s].iteritems():
            assert (not data)
    for s in succ1:
        for key in list(self[t1][s]):
            self.remove_edge(t1, s, key=key)
    for s in succ2:
        for key in list(self[t2][s]):
            self.remove_edge(t2, s, key=key)
    for s in (set(succ1) | set(succ2)):
        self.add_edge(t, s)
    self.add_edge(t1, t)
    self.add_edge(t2, t)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ t1 ] -- s       [ t1 ]         s
                        ⟍     ⟋
             ==>         [ t ]
                        ⟋     ⟍
[ t2 ] -- s'      [ t2 ]        s'

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def post_align(self, t1, t2, t):
    "\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n        [ t1 ] -- s       [ t1 ]         s\n                                ⟍     ⟋\n                     ==>         [ t ]\n                                ⟋     ⟍\n        [ t2 ] -- s'      [ t2 ]        s'\n\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n        "
    t1 = T(t1)
    t2 = T(t2)
    t = T(t)
    succ1 = self.successors(t1)
    for s in succ1:
        for (key, data) in self[t1][s].iteritems():
            assert (not data)
    succ2 = self.successors(t2)
    for s in succ2:
        for (key, data) in self[t2][s].iteritems():
            assert (not data)
    for s in succ1:
        for key in list(self[t1][s]):
            self.remove_edge(t1, s, key=key)
    for s in succ2:
        for key in list(self[t2][s]):
            self.remove_edge(t2, s, key=key)
    for s in (set(succ1) | set(succ2)):
        self.add_edge(t, s)
    self.add_edge(t1, t)
    self.add_edge(t2, t)