{-# LANGUAGE PatternSynonyms #-} module Data.SegTree.RangeUpdateRangeSum where import Data.Monoid.Affine import Data.SegTree.RangeAffineRangeSum () {- | >>> import Data.SegTree >>> import Data.Monoid.RangedSum >>> sendo (LastSum @Int 999) (RangedSum @Int 1 123) RangedSum {getRangesSumSize = 1, getRangedSum = 999} -} pattern LastSum :: (Integral a) => a -> Affine a pattern $mLastSum :: forall {r} {a}. Integral a => Affine a -> (a -> r) -> ((# #) -> r) -> r $bLastSum :: forall a. Integral a => a -> Affine a LastSum x = Affine 0 x