{-# LANGUAGE TypeFamilies #-}
module AtCoder.Extra.Monoid
(
SegAct (..),
Affine1 (..),
Affine1Repr,
Mat2x2 (..),
Mat2x2Repr,
V2 (..),
V2Repr,
RangeAdd (..),
RangeSet (..),
RangeSetRepr,
RollingHash,
)
where
import AtCoder.Extra.Monoid.Affine1 (Affine1 (..), Affine1Repr)
import AtCoder.Extra.Monoid.Mat2x2 (Mat2x2 (..), Mat2x2Repr)
import AtCoder.Extra.Monoid.RangeAdd (RangeAdd (..))
import AtCoder.Extra.Monoid.RangeSet (RangeSet (..), RangeSetRepr)
import AtCoder.Extra.Monoid.RollingHash (RollingHash)
import AtCoder.Extra.Monoid.V2 (V2 (..), V2Repr)
import AtCoder.LazySegTree (SegAct (..))