You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On a page 139 (8. Type definition) possible union cases listed as follow:
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident : uncurried-sig --n-ary union case
uncurried-sig :=
args-spec -> type
args-spec :=
arg-spec * ... * arg-spec
But this one doesn't compile:
type Test =
| A
| B of int*int
| C : int->int
with error:
Return types of union cases must be identical to the type being defined, up to abbreviations
This construct is deprecated: it is only for use in the F# library
But this one is correct:
type Test =
| A
| B of int*int
| C of (int->int) //parentheses are required
So probably union-type-case-data should look like:
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident of (uncurried-sig) --n-ary union case
The text was updated successfully, but these errors were encountered:
On a page 139 (8. Type definition) possible union cases listed as follow:
But this one doesn't compile:
with error:
But this one is correct:
So probably
union-type-case-data
should look like:The text was updated successfully, but these errors were encountered: