<div dir="ltr"><div>Hi,</div><div><br></div>I released unicode-transforms sometime back as bindings to a C library (utf8proc). Since then I have rewritten it completely in Haskell. Haskell data structures are automatically generated from unicode database, so it can be kept up-to-date with the standard unlike the C implementation which was stuck at unicode 5. The implementation comes with a test suite providing 100% code coverage.<div><br></div><div>After a number of algorithmic and implementation efficiency optimizations, I was able to get several times better decompose performance compared to the C implementation. I have not yet got a chance to fully optimize the compose operations but they are still as fast as utf8proc.<div><br></div><div>I would like to thank Antonio Nikishaev for the unicode character database parsing code which I borrowed from the prose library.</div><div><br></div><div><a href="https://github.com/harendra-kumar/unicode-transforms">https://github.com/harendra-kumar/unicode-transforms</a><br></div><div><a href="https://hackage.haskell.org/package/unicode-transforms">https://hackage.haskell.org/package/unicode-transforms</a><br></div><div><br></div><div>-harendra</div></div></div>