There is an advantage that I discovered Hegel has compared to Java, TypeScript and Flow that should be mentioned in the documentation in my opinion.
I explained it in these TypeScript issues:
microsoft/TypeScript#49549
microsoft/TypeScript#49582
Basically the way Hegel treats type propagation, in conjunction with the never type, makes it possible to get rid of the whole verbose throws Java-esque mechanism that would otherwise be required to be safe in the Java language, and that is missed entirely in TypeScript and Flow making those languages unsafe.