type ty_id = string type ty = TVar of ty_id | Arr of ty * ty | And of ty * ty | Or of ty * ty | Bot | Unknown (* for Or *) type gam = (ty_id * ty) list