Bialgebraic Reasoning on Higher-order Program Equivalence | Synapse