(* These types describe a catalog of t-shirts. *)
type size = XL | L | M | S
type color = White | Black | Blue
type tshirt =
{
(* Each t-shirt may have a message, e.g. "I Passed an OCaml Exam And All I Got Was This Lousy T-Shirt" *)
message: string ;
size: size ;
color: color ;
(* Price in €. *)
price: int }
type catalog = tshirt list
(* Trees are used in later questions. Do not panic yet.
*
* A node contains a value of type 'a, an id, and possibly some children.
* The id of the node is not necessarily unique. It does not matter.
* *)
type 'a tree =
{ value: 'a ;
id: int ;
children: 'a tree list }