Expr operator==(Expr e1, Expr e2) { std::string sep(1, blk::Block::fill); blk::Expr right = beside( text(sep + "=" + sep), e2 ); return move_ref(beside( e1, right ), e1->column() + 2, std::max(e1->row(), e2->row())); }
Expr operator/(Expr e1, Expr e2) { int size = std::max(e1->width(), e2->width()); if(e1->height() > 1 || e2->height() > 1) { size += 2; } blk::Expr bottom = over( text(std::string(size, '-')), e2 ); return move_ref(over( e1, bottom ), bottom->column(), e1->height()); }
constexpr auto forward_ref(M&& m)noexcept{ return move_ref(std::move(m)); }