Skip to main content
Version: 0.60.1

Type Declarations

Use type for records and discriminated unions.

Record type

type Project = { Name: string; Version: int }

Union type

type BuildStatus =
| Queued
| Running
| Failed of string
| Succeeded

Recursive type

type rec Tree =
| Empty
| Node of (int * Tree list)

Using declared types

let statusMessage status =
match status with
| Queued -> "queued"
| Running -> "running"
| Failed msg -> $"failed:{msg}"
| Succeeded -> "ok"