datatype Pattern = PatInt of int | PatVar of string | PatWildcard | PatCon of string * Pattern list; datatype Expr = ExprInt of int | ExprVar of string | ExprCompound of string * Expr list;