Use type rec to define recursive types. Combine it with and for mutually recursive types.
type rec
and
type rec expr = | Int(int) | Add(expr, expr) and node = { value: expr, next: option<node>, }
Type