I heard that the ML version was a translation of the C version, and is thus not easy to follow along. Or it may have been the other way around!
Ironically, now with modern Java you can that much easier than the approach done in the Java variant back in 1997.