#pragma once
namespacehaar_lib{template<typenameMonoidUpdate,typenameMonoidGet>structadd_max{usingmonoid_get=MonoidGet;usingmonoid_update=MonoidUpdate;usingvalue_type_get=typenameMonoidGet::value_type;usingvalue_type_update=typenameMonoidUpdate::value_type;value_type_getoperator()(value_type_geta,value_type_updateb,int)const{if(a)return{*a+b};return{};}};}// namespace haar_lib