Simple example:
type Expr = | Primitive of int | Addition of (Expr * Expr) | Subtraction of (Expr * Expr) | Negation of Expr
Isn't that just Func<int> ?
Isn't that just Func<int> ?