Algebraic syntax