A single case discriminated union is like any other discriminated union except that it only has one case.
// Define single-case discriminated union type. type OrderId = OrderId of int // Construct OrderId type. let order = OrderId 123 // Deconstruct using pattern matching. // Parentheses used so compiler doesn't think it is a function definition. let (OrderId id) = order
It is useful for enforcing type safety and commonly used in F# as opposed to C# and Java where creating new types comes with more overhead.
The following two alternative type definitions result in the same single-case discriminated union being declared:
type OrderId = | OrderId of int type OrderId = | OrderId of int