datatype shape
   = Circle   of loc * real      (* center and radius *)
   | Square   of loc * real      (* upper-left corner and side length; axis-aligned *)
   | Triangle of loc * loc * loc (* corners *)
