# Revision history for acl-hs
## 1.5.3.0 -- June 2025
- Added `AtCoder.Extra.AhoCorasick`
- Added `AtCoder.Extra.DsuMonoid`
- Fixed the implementation of `KdTree.findNearstPoint`
## 1.5.2.0 -- June 2025
- Added `AtCoder.Extra.Vector.Prim`
- Fixed some `INLINE` pragmas
## 1.5.1.0 -- June 2025
- Added `transformers` as a new dependency.
- Added more functions:
- `AtCoder.Extra.Lct`: `read`, `lcaMaybe`, `lengthBetween` and `prodTree`.
- `AtCoder.Extra.Graph`: `adj1`.
- `AtCoder.Internal.Csr`: `adj1`.
- `AtCoder.Extra.Vector`:
- `iconcatMap`, `concatMapM`, `iconcatMapM`
- `compress`, `mapAccumL`, `chunks`
- `scanlM` variants,
- `maxRangeSum`, `minRangeSum`
- `slideMinIndices`, `slideMaxIndices`
## 1.5.0.0 -- May 2025
- Changed the parameter orders of `bfs01` and `dijkstra` in `AtCoder.Extra.Graph`.
- Fixed `Hld.new` to have `headHld` of `[0]`, not `[-1]`.
## 1.4.0.0 -- May 2025
- Added cycle detection functions to `AtCoder.Extra.Graph`.
- Fixed the exteremely slow `Internal.GrowVec` functions with `{-# INLINE #-}`.
- Changed `AtCoder.Extra.Pdsu.merge` to return new representative.
- Fixed `AtCoder.Extra.Hld.jump` to return `Nothing` for `k < 0`.
## 1.3.1.0 -- May 2025
- Fixed `AtCoder.Extra.Monoid.RollingHash` to take 64 bit mod values.
## 1.3.0.0 -- April 2025
- Added `AtCoder.Extra.Math.isPrimitiveRoot`.
- Re-created `AtCoder.Extra.Bisect` module.
- Removed re-exports of `AtCoder.Internal.Math` functions from `AtCoder.Extra.Math`.
- Removed `Extra.Vector.unsafePermuteInPlace`.
- Removed some `Handle` function re-exports from `AtCoder.Extra.Seq` module.
- Changed `AtCoder.Extra.Tree.scan` to non-generic, `Unbox` vector.
## 1.2.6.0 -- April 2025
- Added `AtCoder.Extra.Math` functions:
- `isPrime`
- `primes`
- `primeFactors`
- Added `AtCoderExtra.Math.Montgomery64`.
- Added `AtCoderExtra.ModInt64`.
## 1.2.5.0 -- April 2025
- Added `AtCoder.Extra.Mo`.
- Added `AtCoder.Extra.SqrtDecomposition`.
## 1.2.4.0 -- April 2025
- Added `AtCoder.Dsu.mergeMaybe`.
- Added `AtCoder.Extra.Graph` functions:
- `rev`
- `connectedComponents`
- `bipartiteVertexColors`
- BFS, Dijkstra, Bellman–Ford, Floyd–Warshall
- path reconstruction functions
- Added `AtCoder.Extra.Tree` functions:
- `diameter`, `diameterPath`
- `mst`, `mstBy`
- Added `AtCoder.Internal.Queue.newDeque`.
## 1.2.3.0 -- March 2025
- Added `AtCoder.Extra.SegTree2d` and `Extra.SegTree2d.Dense`.
## 1.2.2.1 -- March 2025
- Reduced build time with `ST` monad and `INLINEABLE` pragmas.
## 1.2.2.0 -- Feb 2025
- Added `AtCoder.Extra.KdTree` and `AtCoder.Extra.LazyKdTree`.
- Added `clear` function to the dynamic segment tree family.
- Fixed `AtCoder.Extra.Hld.new` for a tree with a single vertex.
## 1.2.1.0 -- Feb 2025
- Added dynamic segment tree family.
- Added `AtCoder.Extra.Seq.Map`.
- Fixed `AtCoder.Extra.Pool.size`.
- `Handle` is moved from `AtCoder.Extra.Seq` to `AtCoder.Extra.Pool`.
## 1.2.0.0 -- Feb 2025
- Added `AtCoder.Extra.Seq`.
- Tweaked `INLINE` settings for less compile time.
- Breaking changes:
- `Matrix.diag` now does not take length parameter.
- `AtCoder.Extra.Math.primitiveRoot` is renamed to `primitiveRoot32`.
- `Internal.Convolution` functions now use `ST` instead of `PrimMonad`.
- `SegAct` implementation for `AtCoder.Extra.Monoid.RangeAdd` over `Max` and `Min` were fixed.
## 1.1.1.0 -- Jan 2025
- Added `AtCoder.Extra.Tree.Lct`.
- Added `blockCut`, `blockCutComponents` in `AtCoder.Extra.Graph`.
- Added `popBack_` in `AtCoder.Internal.Buffer`.
- Added `square`, `rank`, `inv`, `invRaw`, `detMod`, `detMint` in `AtCoder.Extra.Matrix`.
## 1.1.0.0 -- Jan 2025
- Removed `RangeSetId` and `RangeAddId` from `AtCoder.Extra.Monoid`.
- Implemented `SegAct` for `RangeSet`, `RangeAdd` and `Max`, `Min`.
- Added `segActWithLength` to `SegAct`.
- Added `build1` to `AtCoder.Internal.Csr`.
- Added a bunch of extra modules.
## 1.0.0.0 -- Dec 2024
- First version.
- Added ACL-compatible modules.
- Added `AtCoder.Extra.Math` (binary exponentiation) and `AtCoder.Extra.Monoid` (`SegAct` instances).