Reflection, downcasts and assigning `null` to pointers are completely opt-in in Java too.<p>With respect to type families, I&#x27;m probably being a little bit unfair. Personally, I don&#x27;t have much against <i>associated</i> type families. (Although I think Rust handles them much more gracefully than GHC.) But very important libraries in the GHC ecosystem like vector and lens make extensive use of free-floating type families, which I find... ugh... I don&#x27;t want to get angry.