(def-type (Shape)
  (Circle Float)
  (Rectangle Float Float))

(def (area s)
  (match s
	(Rectangle w h) (* w h)
	(Circle r)      (* 3.14159 r)))


;(area (Circle 2.0))

(def s (Circle 2.0))
(area s)