type t = | Integer | Real | Matrix of t | Vector of t | Tuple of t list let rec to_string = function | Integer -> "integer" | Real -> "real" | Matrix set -> (to_string set) ^ " matrix" | Vector set -> (to_string set) ^ " vector" | Tuple l -> String.concat " * " (List.map to_string l)