type t = | Var of int | Const of string | Free of string | Function of string * t list