The following discriminated union fails to compile:
type Expression =
| Identifier of string
| Integer of int
| Assignment of Identifier * Expression
with the shown error being
The type "Identifier" is not defined.
on the last union case.
I’ve tried tagging Expression with the rec attribute but that seems of no avail.
Is there a work-around for this? Better yet, is the referred reason the cause of my trouble?
You cannot do that. Inside the Union you cannot refer to another Union element.
So it should be:
So that when you parse the assignment union you can put a validation there that the first Expression in the tuple should be Identifier.