#pragma once
template<typenameAlgebra>structAlgebraReverse:Algebra{usingX=typenameAlgebra::value_type;staticconstexprXop(constX&x,constX&y){returnAlgebra::op(y,x);}staticconstexprvoidRchop(X&x,constX&y){Algebra::Lchop(y,x);}staticconstexprvoidLchop(constX&x,X&y){Algebra::Rchop(y,x);}};