Depends on how high you set your standards.  Ie Python mostly has higher order functions that work, even though for mostly syntax reasons they interact badly with mutating variables---a bit of sugar would help a lot.<p>In any case, your point stands and complements mine.<p>(Apropos ADTs, did Scala always have them?  From what I can tell their syntax is pretty awkward, though.<p>Google&#x27;s Protobuf, which in some sense denotes a type system, even if not a programming language, did get something like ADTs: <a href="https:&#x2F;&#x2F;developers.google.com&#x2F;protocol-buffers&#x2F;docs&#x2F;proto3#oneof" rel="nofollow">https:&#x2F;&#x2F;developers.google.com&#x2F;protocol-buffers&#x2F;docs&#x2F;proto3#o...</a><p>I am pretty lenient, and would go for anything that resembles a compiler-enforced tagged union.  (Think C-style union.))