Earlier quoted context omitted.
While I agree with you, I can understand going with enum so that they don't scare away the C and C++ crowd with being too fartsy with theoretic stuff.
It is especially confusing for C and C++ coders, because Rust enums are a completely different thing than C enums, which makes the naming choice worse than just inventing a new name. Better names would be "tagged union" (which is spot-on descriptive - because it *is* a union with a tag slapped on - but "tagged_union" of course is a bit unwieldy as keyword) or "variant" (which is the name for that thing in C++ and els…
` (* enum ) type 'a Option = Some of 'a | None `
( struct - well: record. *) type Company = { Name : string Age : int }
Fudge. No idea how to format that in HN.