None of these make use of monads or anything rooted in category theory.
https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_sy...
HM is a type system that also gives you an algorithm to infer types without having to do the "List<Integer> foo = new ArrayList<Integer>()" dance from languages without type inference. That's it. It has nothing to do with category theory.