How are any of these coming from Lisp? I was under the impression that ML was a completely separate camp from Lisp.
ML was implemented in Stanford Lisp on a DEC10. The layout of the language is very lispy. Make parens around functions non-optional and add them around let, and a couple other constructs makes the code almost indistinguishable from lisp. First-class functions everywhere, linked lists, and garbage collection were also very-much tied to lisp at the time. Initially being implemented on top of Lisp is probably a key reason these were present.
Idris is eagerly evaluated.
You are correct (I'm sorry, I don't know much more than what I read in a cursory inspection some time ago). I should have called it the "lazy and/or completely immutable" category.
In the "core" ML family: original ML, Standard ML (SML), Concurrent ML (an extension of SML), Polly ML (yes, it's a different language that SML is implemented on top of).
Then there was the "lazy" family: Idris, Lazy ML, Miranda, Haskell, Purescript, and Elm (though it's not actually lazy).
Then you have the "pragmatic" family: Caml, Ocaml, Coq, F#, f-star, Alpaca, and Scala (these last two are somewhat less related here).
You also have the rough category of ML without a GC: ATS and Rust
There's a few others, but I'm not so familiar with them.